Diego Coll / Mbed 2 deprecated Praxis

Dependencies:   mbed BSP_DISCO_F746NG LCD_DISCO_F746NG TS_DISCO_F746NG

Committer:
DiegoColl
Date:
Mon Aug 14 19:41:43 2017 +0000
Revision:
2:997b65c65e65
Parent:
1:6e255a933812
Child:
3:b12ac8d9c397
proba marica

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