Diego Coll / Mbed 2 deprecated Praxis

Dependencies:   mbed BSP_DISCO_F746NG LCD_DISCO_F746NG TS_DISCO_F746NG

Committer:
DiegoColl
Date:
Thu Jun 08 00:17:30 2017 +0000
Revision:
1:6e255a933812
Parent:
0:9cac1b16cf93
Child:
2:997b65c65e65
Incorporaci?n de librer?as de LCD, TOUCH, Ethernet

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DiegoColl 0:9cac1b16cf93 1 #include<string>
DiegoColl 0:9cac1b16cf93 2 #include "mbed.h"
DiegoColl 1:6e255a933812 3 #include "TS_DISCO_F746NG.h"
DiegoColl 1:6e255a933812 4 #include "LCD_DISCO_F746NG.h"
DiegoColl 0:9cac1b16cf93 5
DiegoColl 0:9cac1b16cf93 6 //-------------------------------------------- definicion de uarts
DiegoColl 0:9cac1b16cf93 7
DiegoColl 0:9cac1b16cf93 8 //Serial pc(USBTX, USBRX); //activar para manejar las dos conexiones uart.(no olvidar ordenar los cambios)
DiegoColl 0:9cac1b16cf93 9
DiegoColl 0:9cac1b16cf93 10 Serial uart(USBTX, USBRX); //cambiar por el de abajo a la ahora de cargarlo en la placa, para testear con los modulos.
DiegoColl 0:9cac1b16cf93 11 //Serial uart(PC_6, PC_7);
DiegoColl 0:9cac1b16cf93 12
DiegoColl 0:9cac1b16cf93 13
DiegoColl 0:9cac1b16cf93 14 //-------------------------------------------- definicion de etiquetas
DiegoColl 0:9cac1b16cf93 15
DiegoColl 1:6e255a933812 16 LCD_DISCO_F746NG lcd;
DiegoColl 1:6e255a933812 17 TS_DISCO_F746NG ts;
DiegoColl 0:9cac1b16cf93 18 InterruptIn button(BUTTON1);
DiegoColl 0:9cac1b16cf93 19 DigitalOut myled(LED1);
DiegoColl 0:9cac1b16cf93 20
DiegoColl 0:9cac1b16cf93 21 //-------------------------------------------- definicion de variables globales
DiegoColl 0:9cac1b16cf93 22
DiegoColl 1:6e255a933812 23 string ID="C1",ST="OK",AC="",AK="";
DiegoColl 0:9cac1b16cf93 24 //char IDs[]="",STs[]="",ACs[]="",AKs[]="";
DiegoColl 0:9cac1b16cf93 25
DiegoColl 0:9cac1b16cf93 26 char buffer[32]="";
DiegoColl 1:6e255a933812 27 char* aux[10];
DiegoColl 1:6e255a933812 28 //char* acc[4]={"CN","DT","OK","ER"};
DiegoColl 0:9cac1b16cf93 29 int SP=1;
DiegoColl 0:9cac1b16cf93 30 int OP=1;
DiegoColl 1:6e255a933812 31 int x=0;
DiegoColl 1:6e255a933812 32 int yx=72, yy=142, yz=212;
DiegoColl 1:6e255a933812 33 int gx=72, gy=142, gz=212;
DiegoColl 1:6e255a933812 34 int mx=72, my=142, mz=212;
DiegoColl 1:6e255a933812 35
DiegoColl 0:9cac1b16cf93 36
DiegoColl 0:9cac1b16cf93 37 //-------------------------------------------- definicion de funciones
DiegoColl 0:9cac1b16cf93 38
DiegoColl 1:6e255a933812 39 void encabezado_lcd(){
DiegoColl 1:6e255a933812 40
DiegoColl 1:6e255a933812 41 //------------------------------ programa
DiegoColl 1:6e255a933812 42
DiegoColl 1:6e255a933812 43 lcd.Clear(LCD_COLOR_BLACK);
DiegoColl 1:6e255a933812 44 lcd.SetBackColor(LCD_COLOR_BLACK);
DiegoColl 1:6e255a933812 45 lcd.SetTextColor(LCD_COLOR_GREEN);
DiegoColl 1:6e255a933812 46 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"PRAXIS", CENTER_MODE);
DiegoColl 1:6e255a933812 47 wait(3); // 3s
DiegoColl 1:6e255a933812 48 lcd.Clear(LCD_COLOR_BLACK);
DiegoColl 1:6e255a933812 49 };
DiegoColl 1:6e255a933812 50
DiegoColl 1:6e255a933812 51 void refrescar_lcd(){
DiegoColl 1:6e255a933812 52
DiegoColl 1:6e255a933812 53 //------------------------------ programa
DiegoColl 1:6e255a933812 54
DiegoColl 1:6e255a933812 55 lcd.SetTextColor(LCD_COLOR_GREEN);
DiegoColl 1:6e255a933812 56 lcd.DisplayStringAt(0, LINE(0), (uint8_t *)"PRAXIS", CENTER_MODE);
DiegoColl 1:6e255a933812 57
DiegoColl 1:6e255a933812 58 x++;
DiegoColl 1:6e255a933812 59 if(x==480){
DiegoColl 1:6e255a933812 60 x=0;
DiegoColl 1:6e255a933812 61 lcd.Clear(LCD_COLOR_BLACK);
DiegoColl 1:6e255a933812 62 }
DiegoColl 1:6e255a933812 63
DiegoColl 1:6e255a933812 64 lcd.DrawPixel(x, yx, LCD_COLOR_ORANGE);
DiegoColl 1:6e255a933812 65 lcd.DrawPixel(x, yy, LCD_COLOR_YELLOW);
DiegoColl 1:6e255a933812 66 lcd.DrawPixel(x, yz, LCD_COLOR_RED);
DiegoColl 1:6e255a933812 67
DiegoColl 1:6e255a933812 68 wait(0.01); // 10 ms
DiegoColl 1:6e255a933812 69 };
DiegoColl 1:6e255a933812 70
DiegoColl 0:9cac1b16cf93 71 void blinkled(){
DiegoColl 0:9cac1b16cf93 72 myled = 1; // LED is ON
DiegoColl 0:9cac1b16cf93 73 wait(0.2); // 200 ms
DiegoColl 0:9cac1b16cf93 74 myled = 0; // LED is OFF
DiegoColl 0:9cac1b16cf93 75 wait(0.2); // 200 ms
DiegoColl 0:9cac1b16cf93 76 };
DiegoColl 0:9cac1b16cf93 77
DiegoColl 0:9cac1b16cf93 78 void speed(){
DiegoColl 0:9cac1b16cf93 79
DiegoColl 0:9cac1b16cf93 80 //------------ variables locales
DiegoColl 0:9cac1b16cf93 81
DiegoColl 0:9cac1b16cf93 82
DiegoColl 0:9cac1b16cf93 83 //------------ programa
DiegoColl 0:9cac1b16cf93 84
DiegoColl 0:9cac1b16cf93 85 uart.printf("<%s;%s;S%i;2F>",ID,ST,SP);
DiegoColl 0:9cac1b16cf93 86
DiegoColl 0:9cac1b16cf93 87 SP++;
DiegoColl 0:9cac1b16cf93 88
DiegoColl 0:9cac1b16cf93 89 if(SP==4){
DiegoColl 0:9cac1b16cf93 90 SP=1;
DiegoColl 0:9cac1b16cf93 91 }
DiegoColl 0:9cac1b16cf93 92 };
DiegoColl 0:9cac1b16cf93 93
DiegoColl 0:9cac1b16cf93 94 void borrar_buffer(char *cadena){
DiegoColl 0:9cac1b16cf93 95
DiegoColl 0:9cac1b16cf93 96 //------------ variables locales
DiegoColl 0:9cac1b16cf93 97
DiegoColl 0:9cac1b16cf93 98 int i=0;
DiegoColl 0:9cac1b16cf93 99
DiegoColl 0:9cac1b16cf93 100 //------------ programa
DiegoColl 0:9cac1b16cf93 101
DiegoColl 0:9cac1b16cf93 102 for(i=0;i<31;i++){
DiegoColl 0:9cac1b16cf93 103 cadena[i]=0x00;
DiegoColl 0:9cac1b16cf93 104 }
DiegoColl 0:9cac1b16cf93 105 };
DiegoColl 0:9cac1b16cf93 106
DiegoColl 0:9cac1b16cf93 107 void interrup(){
DiegoColl 0:9cac1b16cf93 108
DiegoColl 0:9cac1b16cf93 109 //------------ variables locales
DiegoColl 0:9cac1b16cf93 110
DiegoColl 1:6e255a933812 111 char chksm=0;
DiegoColl 0:9cac1b16cf93 112 char c;
DiegoColl 0:9cac1b16cf93 113 int i=0;
DiegoColl 0:9cac1b16cf93 114
DiegoColl 0:9cac1b16cf93 115 //------------ programa
DiegoColl 0:9cac1b16cf93 116
DiegoColl 0:9cac1b16cf93 117 c=uart.getc();
DiegoColl 0:9cac1b16cf93 118 if(c=='<'){
DiegoColl 0:9cac1b16cf93 119 while(c!='>'){
DiegoColl 0:9cac1b16cf93 120 c=uart.getc();
DiegoColl 0:9cac1b16cf93 121 if(c!='>'){
DiegoColl 1:6e255a933812 122 buffer[i++]=c; //------------ carga buffer
DiegoColl 0:9cac1b16cf93 123 }
DiegoColl 0:9cac1b16cf93 124 }
DiegoColl 1:6e255a933812 125
DiegoColl 1:6e255a933812 126 for(i=0;i<strlen(buffer)-2;i++){ //------------ calculo checksum
DiegoColl 1:6e255a933812 127 chksm ^= buffer[i];
DiegoColl 1:6e255a933812 128 }
DiegoColl 1:6e255a933812 129
DiegoColl 1:6e255a933812 130 //uart.printf("%x",chksm);
DiegoColl 1:6e255a933812 131
DiegoColl 0:9cac1b16cf93 132 i=0;
DiegoColl 1:6e255a933812 133
DiegoColl 1:6e255a933812 134 aux[i]=strtok(buffer,";"); //------------ separa la cadena
DiegoColl 1:6e255a933812 135
DiegoColl 0:9cac1b16cf93 136 do{
DiegoColl 0:9cac1b16cf93 137 i++;
DiegoColl 0:9cac1b16cf93 138 aux[i]=strtok(NULL, ";");
DiegoColl 0:9cac1b16cf93 139 }while(aux[i]!=NULL);
DiegoColl 1:6e255a933812 140
DiegoColl 1:6e255a933812 141
DiegoColl 1:6e255a933812 142 //if(strcmp(aux[??],chksm) == 0){ //------------ comparar checksum (FALTA)
DiegoColl 1:6e255a933812 143 // uart.printf("checksum igual");
DiegoColl 1:6e255a933812 144 // }
DiegoColl 1:6e255a933812 145
DiegoColl 1:6e255a933812 146
DiegoColl 1:6e255a933812 147 if(strcmp(aux[2],"CN") == 0){ //------------ toma de decision
DiegoColl 1:6e255a933812 148
DiegoColl 1:6e255a933812 149 uart.printf("<%s;%s;YE;51>",ID,ST);
DiegoColl 1:6e255a933812 150 }
DiegoColl 1:6e255a933812 151 if(strcmp(aux[2],"D1") == 0){
DiegoColl 1:6e255a933812 152 yx= 120 - *aux[3];
DiegoColl 1:6e255a933812 153 yy= 190 - *aux[4];
DiegoColl 1:6e255a933812 154 yz= 260 - *aux[5];
DiegoColl 1:6e255a933812 155 //uart.putc(yx);
DiegoColl 1:6e255a933812 156 //uart.putc(yy);
DiegoColl 1:6e255a933812 157 //uart.putc(yz);
DiegoColl 1:6e255a933812 158 //uart.printf("<%s;%s;DT;2F>",ID,ST);
DiegoColl 1:6e255a933812 159 }
DiegoColl 1:6e255a933812 160 if(strcmp(aux[2],"D2") == 0){
DiegoColl 1:6e255a933812 161 gx=*aux[3];
DiegoColl 1:6e255a933812 162 gy=*aux[4];
DiegoColl 1:6e255a933812 163 gz=*aux[5];
DiegoColl 1:6e255a933812 164 //uart.printf("<%s;%s;DT;2F>",ID,ST);
DiegoColl 1:6e255a933812 165 }
DiegoColl 1:6e255a933812 166 if(strcmp(aux[2],"D3") == 0){
DiegoColl 1:6e255a933812 167 mx=*aux[3];
DiegoColl 1:6e255a933812 168 my=*aux[4];
DiegoColl 1:6e255a933812 169 mz=*aux[5];
DiegoColl 1:6e255a933812 170 //uart.printf("<%s;%s;DT;2F>",ID,ST);
DiegoColl 1:6e255a933812 171 }
DiegoColl 0:9cac1b16cf93 172 }
DiegoColl 0:9cac1b16cf93 173 borrar_buffer(buffer);
DiegoColl 0:9cac1b16cf93 174 };
DiegoColl 0:9cac1b16cf93 175
DiegoColl 0:9cac1b16cf93 176 //codigo principal
DiegoColl 0:9cac1b16cf93 177
DiegoColl 0:9cac1b16cf93 178 int main() {
DiegoColl 0:9cac1b16cf93 179
DiegoColl 1:6e255a933812 180 //pc.printf("Inicio de programa\n"); //cambiar uart de destino al final
DiegoColl 1:6e255a933812 181 uart.printf("Inicio de programa\n");
DiegoColl 1:6e255a933812 182 encabezado_lcd();
DiegoColl 0:9cac1b16cf93 183
DiegoColl 0:9cac1b16cf93 184 //------------------------------ Interrupciones
DiegoColl 0:9cac1b16cf93 185
DiegoColl 0:9cac1b16cf93 186 button.rise(&speed);
DiegoColl 0:9cac1b16cf93 187 uart.attach(&interrup);
DiegoColl 0:9cac1b16cf93 188
DiegoColl 0:9cac1b16cf93 189 //------------------------------ programa
DiegoColl 0:9cac1b16cf93 190
DiegoColl 0:9cac1b16cf93 191 while(1) {
DiegoColl 1:6e255a933812 192
DiegoColl 1:6e255a933812 193 refrescar_lcd();
DiegoColl 1:6e255a933812 194 //blinkled();
DiegoColl 0:9cac1b16cf93 195 }
DiegoColl 0:9cac1b16cf93 196 }