Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@1:7f5f80b47892, 2018-05-04 (annotated)
- Committer:
- angelocarrieri
- Date:
- Fri May 04 15:23:13 2018 +0000
- Revision:
- 1:7f5f80b47892
- Parent:
- 0:3eda4839be5c
- Child:
- 2:52b0e1971195
Comandi AT
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| angelocarrieri | 0:3eda4839be5c | 1 | |
| angelocarrieri | 0:3eda4839be5c | 2 | #include "mbed.h" |
| angelocarrieri | 0:3eda4839be5c | 3 | #include "string.h" |
| angelocarrieri | 0:3eda4839be5c | 4 | #include "stdio.h" |
| angelocarrieri | 0:3eda4839be5c | 5 | #include "stdlib.h" |
| angelocarrieri | 0:3eda4839be5c | 6 | #include "Serial.h" |
| angelocarrieri | 0:3eda4839be5c | 7 | #include "ATCmdParser.h" |
| angelocarrieri | 0:3eda4839be5c | 8 | #include "UARTSerial.h" |
| angelocarrieri | 0:3eda4839be5c | 9 | |
| angelocarrieri | 1:7f5f80b47892 | 10 | // Dimensione massima dei vettori MRxB e ARxB |
| angelocarrieri | 1:7f5f80b47892 | 11 | #define MRxBDIM 400 |
| angelocarrieri | 1:7f5f80b47892 | 12 | #define ARxBDIM 400 |
| angelocarrieri | 0:3eda4839be5c | 13 | |
| angelocarrieri | 0:3eda4839be5c | 14 | // Numero dei byte da inviare allo SLAVE per l'accensione del led |
| angelocarrieri | 0:3eda4839be5c | 15 | #define NumByte 16 |
| angelocarrieri | 0:3eda4839be5c | 16 | |
| angelocarrieri | 0:3eda4839be5c | 17 | // Configurazione della porta seriale del computer |
| angelocarrieri | 0:3eda4839be5c | 18 | Serial pc(USBTX, USBRX); |
| angelocarrieri | 0:3eda4839be5c | 19 | |
| angelocarrieri | 1:7f5f80b47892 | 20 | DigitalOut led(LED2); |
| angelocarrieri | 0:3eda4839be5c | 21 | |
| angelocarrieri | 1:7f5f80b47892 | 22 | // Configurazione della porta seriale UART |
| angelocarrieri | 1:7f5f80b47892 | 23 | UARTSerial serial = UARTSerial(PA_9, PA_10); |
| angelocarrieri | 0:3eda4839be5c | 24 | ATCmdParser at = ATCmdParser(&serial, "\r\n"); |
| angelocarrieri | 0:3eda4839be5c | 25 | |
| angelocarrieri | 1:7f5f80b47892 | 26 | // Configurazione dei parametri della SPI |
| angelocarrieri | 1:7f5f80b47892 | 27 | SPI myspi(PA_7, PA_6, PA_5, NC); |
| angelocarrieri | 1:7f5f80b47892 | 28 | |
| angelocarrieri | 1:7f5f80b47892 | 29 | char MRxB[MRxBDIM]; |
| angelocarrieri | 1:7f5f80b47892 | 30 | char ARxB[ARxBDIM]; |
| angelocarrieri | 1:7f5f80b47892 | 31 | char c; |
| angelocarrieri | 0:3eda4839be5c | 32 | |
| angelocarrieri | 0:3eda4839be5c | 33 | // Vettore che conterrà i byte da trasmettere al led |
| angelocarrieri | 1:7f5f80b47892 | 34 | uint8_t VettoreLED[NumByte]; |
| angelocarrieri | 0:3eda4839be5c | 35 | |
| angelocarrieri | 0:3eda4839be5c | 36 | int i=0; |
| angelocarrieri | 0:3eda4839be5c | 37 | int j=0; |
| angelocarrieri | 0:3eda4839be5c | 38 | |
| angelocarrieri | 1:7f5f80b47892 | 39 | int E=0; |
| angelocarrieri | 1:7f5f80b47892 | 40 | int R=0; |
| angelocarrieri | 1:7f5f80b47892 | 41 | int ER=0; |
| angelocarrieri | 1:7f5f80b47892 | 42 | int ERR=0; |
| angelocarrieri | 1:7f5f80b47892 | 43 | |
| angelocarrieri | 1:7f5f80b47892 | 44 | int finelis=0; |
| angelocarrieri | 1:7f5f80b47892 | 45 | int stoplis=0; |
| angelocarrieri | 1:7f5f80b47892 | 46 | |
| angelocarrieri | 1:7f5f80b47892 | 47 | /* |
| angelocarrieri | 0:3eda4839be5c | 48 | int TxSIZE; |
| angelocarrieri | 1:7f5f80b47892 | 49 | int MRxBSIZE; |
| angelocarrieri | 1:7f5f80b47892 | 50 | int ARxBSIZE; */ |
| angelocarrieri | 0:3eda4839be5c | 51 | |
| angelocarrieri | 0:3eda4839be5c | 52 | volatile char input; |
| angelocarrieri | 1:7f5f80b47892 | 53 | |
| angelocarrieri | 1:7f5f80b47892 | 54 | // Funzione per l'emissione di luce verde tramite l'interfaccia SPI |
| angelocarrieri | 1:7f5f80b47892 | 55 | void LedGREEN(); |
| angelocarrieri | 1:7f5f80b47892 | 56 | |
| angelocarrieri | 1:7f5f80b47892 | 57 | // Funzione per l'emissione di luce rossa tramite l'interfaccia SPI |
| angelocarrieri | 1:7f5f80b47892 | 58 | void LedRED(); |
| angelocarrieri | 1:7f5f80b47892 | 59 | |
| angelocarrieri | 1:7f5f80b47892 | 60 | // Funzione per lo spegnimento del led tramite l'interfaccia SPI |
| angelocarrieri | 1:7f5f80b47892 | 61 | void LedOFF(); |
| angelocarrieri | 1:7f5f80b47892 | 62 | |
| angelocarrieri | 1:7f5f80b47892 | 63 | // Funzione per la ricerca della parola ERROR nel vettore ricevuto dal modem in risposta al comando digitato |
| angelocarrieri | 1:7f5f80b47892 | 64 | void GestERR1(); |
| angelocarrieri | 1:7f5f80b47892 | 65 | |
| angelocarrieri | 1:7f5f80b47892 | 66 | // Funzione per la ricerca della parola ERROR nel vettore ricevuto dal modem in risposta alla sequenza prestabilita di comandi |
| angelocarrieri | 1:7f5f80b47892 | 67 | void GestERR2(); |
| angelocarrieri | 0:3eda4839be5c | 68 | |
| angelocarrieri | 0:3eda4839be5c | 69 | |
| angelocarrieri | 0:3eda4839be5c | 70 | int main() |
| angelocarrieri | 0:3eda4839be5c | 71 | { |
| angelocarrieri | 1:7f5f80b47892 | 72 | |
| angelocarrieri | 1:7f5f80b47892 | 73 | // Configurazione del baud rate per la comunicazione col computer |
| angelocarrieri | 0:3eda4839be5c | 74 | pc.baud(9600); |
| angelocarrieri | 1:7f5f80b47892 | 75 | |
| angelocarrieri | 1:7f5f80b47892 | 76 | // Configurazione dei parametri per l'interfaccia SPI |
| angelocarrieri | 1:7f5f80b47892 | 77 | myspi.format(16, 0); |
| angelocarrieri | 1:7f5f80b47892 | 78 | myspi.frequency(3333333.3); |
| angelocarrieri | 1:7f5f80b47892 | 79 | |
| angelocarrieri | 1:7f5f80b47892 | 80 | printf("\r\n"); |
| angelocarrieri | 1:7f5f80b47892 | 81 | printf(" PROGRAMMA PER L'INVIO DI COMANDI AT SU PORTA SERIALE\r\n"); |
| angelocarrieri | 1:7f5f80b47892 | 82 | printf("______________________________________________________________________________\r\n"); |
| angelocarrieri | 1:7f5f80b47892 | 83 | printf("\r\n"); |
| angelocarrieri | 1:7f5f80b47892 | 84 | printf(" ---------------------------------------------------------------\r\n"); |
| angelocarrieri | 1:7f5f80b47892 | 85 | printf(" | Premere 'm' per inserire un comando AT |\r\n"); |
| angelocarrieri | 1:7f5f80b47892 | 86 | printf(" | Premere 'a' per inviare la sequenza automatica di comandi AT |\r\n"); |
| angelocarrieri | 1:7f5f80b47892 | 87 | printf(" | Premere 'e' per uscire dal programma |\r\n"); |
| angelocarrieri | 1:7f5f80b47892 | 88 | printf(" ---------------------------------------------------------------\r\n"); |
| angelocarrieri | 1:7f5f80b47892 | 89 | printf("______________________________________________________________________________\r\n"); |
| angelocarrieri | 1:7f5f80b47892 | 90 | printf("\r\n"); |
| angelocarrieri | 0:3eda4839be5c | 91 | |
| angelocarrieri | 1:7f5f80b47892 | 92 | while(1) |
| angelocarrieri | 0:3eda4839be5c | 93 | { |
| angelocarrieri | 1:7f5f80b47892 | 94 | |
| angelocarrieri | 1:7f5f80b47892 | 95 | // Reset vettore MRxB |
| angelocarrieri | 1:7f5f80b47892 | 96 | for(i=0;i<MRxBDIM;i++) |
| angelocarrieri | 1:7f5f80b47892 | 97 | { |
| angelocarrieri | 1:7f5f80b47892 | 98 | MRxB[i]='\0'; |
| angelocarrieri | 1:7f5f80b47892 | 99 | } |
| angelocarrieri | 1:7f5f80b47892 | 100 | |
| angelocarrieri | 1:7f5f80b47892 | 101 | // Reset vettore ARxB |
| angelocarrieri | 1:7f5f80b47892 | 102 | for(j=0;j<ARxBDIM;j++) |
| angelocarrieri | 1:7f5f80b47892 | 103 | { |
| angelocarrieri | 1:7f5f80b47892 | 104 | ARxB[i]='\0'; |
| angelocarrieri | 1:7f5f80b47892 | 105 | } |
| angelocarrieri | 1:7f5f80b47892 | 106 | |
| angelocarrieri | 1:7f5f80b47892 | 107 | |
| angelocarrieri | 0:3eda4839be5c | 108 | |
| angelocarrieri | 1:7f5f80b47892 | 109 | input=pc.getc(); |
| angelocarrieri | 1:7f5f80b47892 | 110 | |
| angelocarrieri | 1:7f5f80b47892 | 111 | if((input=='m')||(input=='M')) |
| angelocarrieri | 1:7f5f80b47892 | 112 | { |
| angelocarrieri | 1:7f5f80b47892 | 113 | |
| angelocarrieri | 1:7f5f80b47892 | 114 | |
| angelocarrieri | 1:7f5f80b47892 | 115 | printf("Inserire il comando: "); |
| angelocarrieri | 1:7f5f80b47892 | 116 | |
| angelocarrieri | 1:7f5f80b47892 | 117 | while(1) |
| angelocarrieri | 1:7f5f80b47892 | 118 | { |
| angelocarrieri | 1:7f5f80b47892 | 119 | char c = pc.getc(); |
| angelocarrieri | 1:7f5f80b47892 | 120 | pc.putc(c); |
| angelocarrieri | 1:7f5f80b47892 | 121 | at.write(&c,1); |
| angelocarrieri | 0:3eda4839be5c | 122 | |
| angelocarrieri | 1:7f5f80b47892 | 123 | if(c=='\r') {goto esc;} |
| angelocarrieri | 1:7f5f80b47892 | 124 | } |
| angelocarrieri | 1:7f5f80b47892 | 125 | |
| angelocarrieri | 1:7f5f80b47892 | 126 | esc: |
| angelocarrieri | 1:7f5f80b47892 | 127 | |
| angelocarrieri | 1:7f5f80b47892 | 128 | printf("\r\n\r\nRisposta:\r\n"); |
| angelocarrieri | 1:7f5f80b47892 | 129 | |
| angelocarrieri | 1:7f5f80b47892 | 130 | at.read(MRxB, MRxBDIM); |
| angelocarrieri | 1:7f5f80b47892 | 131 | |
| angelocarrieri | 1:7f5f80b47892 | 132 | for(i=0;i<MRxBDIM;i++) |
| angelocarrieri | 1:7f5f80b47892 | 133 | { |
| angelocarrieri | 1:7f5f80b47892 | 134 | pc.printf("%c",MRxB[i]); |
| angelocarrieri | 1:7f5f80b47892 | 135 | } |
| angelocarrieri | 1:7f5f80b47892 | 136 | |
| angelocarrieri | 1:7f5f80b47892 | 137 | printf("______________________________________________________________________________\r\n"); |
| angelocarrieri | 1:7f5f80b47892 | 138 | printf("\r\n"); |
| angelocarrieri | 1:7f5f80b47892 | 139 | |
| angelocarrieri | 1:7f5f80b47892 | 140 | GestERR1(); |
| angelocarrieri | 1:7f5f80b47892 | 141 | |
| angelocarrieri | 1:7f5f80b47892 | 142 | } // End if |
| angelocarrieri | 1:7f5f80b47892 | 143 | |
| angelocarrieri | 1:7f5f80b47892 | 144 | if ((input=='a')||(input=='A')) |
| angelocarrieri | 0:3eda4839be5c | 145 | { |
| angelocarrieri | 1:7f5f80b47892 | 146 | printf("...invio della sequenza automatica di comandi..."); |
| angelocarrieri | 1:7f5f80b47892 | 147 | printf("\r\n"); |
| angelocarrieri | 1:7f5f80b47892 | 148 | at.send("AT"); |
| angelocarrieri | 1:7f5f80b47892 | 149 | at.send("AT+CREG?"); |
| angelocarrieri | 1:7f5f80b47892 | 150 | |
| angelocarrieri | 1:7f5f80b47892 | 151 | printf("\r\nRisposta:\r\n"); |
| angelocarrieri | 1:7f5f80b47892 | 152 | |
| angelocarrieri | 1:7f5f80b47892 | 153 | at.read(ARxB, ARxBDIM); |
| angelocarrieri | 1:7f5f80b47892 | 154 | |
| angelocarrieri | 1:7f5f80b47892 | 155 | for(i=0;i<ARxBDIM;i++) |
| angelocarrieri | 1:7f5f80b47892 | 156 | { |
| angelocarrieri | 1:7f5f80b47892 | 157 | pc.printf("%c",ARxB[i]); |
| angelocarrieri | 1:7f5f80b47892 | 158 | } |
| angelocarrieri | 1:7f5f80b47892 | 159 | |
| angelocarrieri | 1:7f5f80b47892 | 160 | printf("______________________________________________________________________________\r\n"); |
| angelocarrieri | 1:7f5f80b47892 | 161 | printf("\r\n"); |
| angelocarrieri | 1:7f5f80b47892 | 162 | |
| angelocarrieri | 1:7f5f80b47892 | 163 | GestERR2(); |
| angelocarrieri | 1:7f5f80b47892 | 164 | |
| angelocarrieri | 1:7f5f80b47892 | 165 | } // End if |
| angelocarrieri | 1:7f5f80b47892 | 166 | |
| angelocarrieri | 1:7f5f80b47892 | 167 | if ((input=='e')||(input=='E')) |
| angelocarrieri | 1:7f5f80b47892 | 168 | { |
| angelocarrieri | 1:7f5f80b47892 | 169 | printf("Il programma e' stato chiuso\n\r\n\r"); |
| angelocarrieri | 1:7f5f80b47892 | 170 | LedOFF(); |
| angelocarrieri | 1:7f5f80b47892 | 171 | led=0; |
| angelocarrieri | 1:7f5f80b47892 | 172 | exit(0); |
| angelocarrieri | 1:7f5f80b47892 | 173 | } |
| angelocarrieri | 0:3eda4839be5c | 174 | |
| angelocarrieri | 1:7f5f80b47892 | 175 | |
| angelocarrieri | 1:7f5f80b47892 | 176 | } // End while |
| angelocarrieri | 0:3eda4839be5c | 177 | |
| angelocarrieri | 1:7f5f80b47892 | 178 | } |
| angelocarrieri | 0:3eda4839be5c | 179 | |
| angelocarrieri | 1:7f5f80b47892 | 180 | void GestERR1() |
| angelocarrieri | 1:7f5f80b47892 | 181 | { |
| angelocarrieri | 1:7f5f80b47892 | 182 | |
| angelocarrieri | 1:7f5f80b47892 | 183 | finelis=0; |
| angelocarrieri | 1:7f5f80b47892 | 184 | |
| angelocarrieri | 1:7f5f80b47892 | 185 | E=0; |
| angelocarrieri | 1:7f5f80b47892 | 186 | R=0; |
| angelocarrieri | 1:7f5f80b47892 | 187 | ER=0; |
| angelocarrieri | 1:7f5f80b47892 | 188 | ERR=0; |
| angelocarrieri | 1:7f5f80b47892 | 189 | |
| angelocarrieri | 1:7f5f80b47892 | 190 | // Ciclo per la ricerca della parola ERROR nel vettore ricevuto dal modem in risposta al comando digitato |
| angelocarrieri | 1:7f5f80b47892 | 191 | for(i=0;i<MRxBDIM;i++) |
| angelocarrieri | 1:7f5f80b47892 | 192 | { |
| angelocarrieri | 1:7f5f80b47892 | 193 | if(ERR==0) |
| angelocarrieri | 1:7f5f80b47892 | 194 | { |
| angelocarrieri | 1:7f5f80b47892 | 195 | if((MRxB[i])==' ') {goto salto;} |
| angelocarrieri | 1:7f5f80b47892 | 196 | |
| angelocarrieri | 1:7f5f80b47892 | 197 | if(E==0) |
| angelocarrieri | 1:7f5f80b47892 | 198 | { |
| angelocarrieri | 1:7f5f80b47892 | 199 | if ((MRxB[i])=='E') |
| angelocarrieri | 1:7f5f80b47892 | 200 | { |
| angelocarrieri | 1:7f5f80b47892 | 201 | finelis++; |
| angelocarrieri | 1:7f5f80b47892 | 202 | E=1; |
| angelocarrieri | 1:7f5f80b47892 | 203 | goto salto; |
| angelocarrieri | 1:7f5f80b47892 | 204 | } |
| angelocarrieri | 1:7f5f80b47892 | 205 | } |
| angelocarrieri | 1:7f5f80b47892 | 206 | if(ER==0) |
| angelocarrieri | 1:7f5f80b47892 | 207 | { |
| angelocarrieri | 1:7f5f80b47892 | 208 | if(E==1) |
| angelocarrieri | 1:7f5f80b47892 | 209 | { |
| angelocarrieri | 1:7f5f80b47892 | 210 | if((MRxB[i])=='R') |
| angelocarrieri | 1:7f5f80b47892 | 211 | { |
| angelocarrieri | 1:7f5f80b47892 | 212 | finelis++; |
| angelocarrieri | 1:7f5f80b47892 | 213 | R=1; |
| angelocarrieri | 1:7f5f80b47892 | 214 | ER=1; |
| angelocarrieri | 1:7f5f80b47892 | 215 | goto salto; |
| angelocarrieri | 1:7f5f80b47892 | 216 | } |
| angelocarrieri | 1:7f5f80b47892 | 217 | else |
| angelocarrieri | 1:7f5f80b47892 | 218 | { |
| angelocarrieri | 1:7f5f80b47892 | 219 | E=0; |
| angelocarrieri | 1:7f5f80b47892 | 220 | finelis=0; |
| angelocarrieri | 1:7f5f80b47892 | 221 | goto salto; |
| angelocarrieri | 1:7f5f80b47892 | 222 | } |
| angelocarrieri | 1:7f5f80b47892 | 223 | } |
| angelocarrieri | 1:7f5f80b47892 | 224 | } |
| angelocarrieri | 1:7f5f80b47892 | 225 | if(R==1) |
| angelocarrieri | 1:7f5f80b47892 | 226 | { |
| angelocarrieri | 1:7f5f80b47892 | 227 | if((MRxB[i])=='R') |
| angelocarrieri | 1:7f5f80b47892 | 228 | { |
| angelocarrieri | 1:7f5f80b47892 | 229 | finelis++; |
| angelocarrieri | 1:7f5f80b47892 | 230 | ERR=1; |
| angelocarrieri | 1:7f5f80b47892 | 231 | goto salto; |
| angelocarrieri | 1:7f5f80b47892 | 232 | } |
| angelocarrieri | 1:7f5f80b47892 | 233 | else |
| angelocarrieri | 1:7f5f80b47892 | 234 | { |
| angelocarrieri | 1:7f5f80b47892 | 235 | finelis=0; |
| angelocarrieri | 1:7f5f80b47892 | 236 | E=0; |
| angelocarrieri | 1:7f5f80b47892 | 237 | R=0; |
| angelocarrieri | 1:7f5f80b47892 | 238 | ER=0; |
| angelocarrieri | 1:7f5f80b47892 | 239 | } |
| angelocarrieri | 1:7f5f80b47892 | 240 | } |
| angelocarrieri | 1:7f5f80b47892 | 241 | |
| angelocarrieri | 1:7f5f80b47892 | 242 | } // End if(ERR==0) |
| angelocarrieri | 1:7f5f80b47892 | 243 | |
| angelocarrieri | 1:7f5f80b47892 | 244 | salto: |
| angelocarrieri | 1:7f5f80b47892 | 245 | |
| angelocarrieri | 1:7f5f80b47892 | 246 | led=1; |
| angelocarrieri | 1:7f5f80b47892 | 247 | |
| angelocarrieri | 1:7f5f80b47892 | 248 | } // End ciclo for |
| angelocarrieri | 1:7f5f80b47892 | 249 | |
| angelocarrieri | 1:7f5f80b47892 | 250 | if(finelis==3) |
| angelocarrieri | 1:7f5f80b47892 | 251 | { |
| angelocarrieri | 1:7f5f80b47892 | 252 | LedRED(); |
| angelocarrieri | 1:7f5f80b47892 | 253 | } |
| angelocarrieri | 1:7f5f80b47892 | 254 | else |
| angelocarrieri | 1:7f5f80b47892 | 255 | { |
| angelocarrieri | 1:7f5f80b47892 | 256 | LedGREEN(); |
| angelocarrieri | 1:7f5f80b47892 | 257 | } |
| angelocarrieri | 1:7f5f80b47892 | 258 | |
| angelocarrieri | 1:7f5f80b47892 | 259 | } |
| angelocarrieri | 1:7f5f80b47892 | 260 | |
| angelocarrieri | 1:7f5f80b47892 | 261 | void GestERR2() |
| angelocarrieri | 1:7f5f80b47892 | 262 | { |
| angelocarrieri | 1:7f5f80b47892 | 263 | |
| angelocarrieri | 1:7f5f80b47892 | 264 | finelis=0; |
| angelocarrieri | 1:7f5f80b47892 | 265 | |
| angelocarrieri | 1:7f5f80b47892 | 266 | E=0; |
| angelocarrieri | 1:7f5f80b47892 | 267 | R=0; |
| angelocarrieri | 1:7f5f80b47892 | 268 | ER=0; |
| angelocarrieri | 1:7f5f80b47892 | 269 | ERR=0; |
| angelocarrieri | 1:7f5f80b47892 | 270 | |
| angelocarrieri | 1:7f5f80b47892 | 271 | // Ciclo per la ricerca della parola ERROR nel vettore ricevuto dal modem in risposta alla sequenza prestabilita di comandi |
| angelocarrieri | 1:7f5f80b47892 | 272 | for(i=0;i<ARxBDIM;i++) |
| angelocarrieri | 1:7f5f80b47892 | 273 | { |
| angelocarrieri | 1:7f5f80b47892 | 274 | if(ERR==0) |
| angelocarrieri | 1:7f5f80b47892 | 275 | { |
| angelocarrieri | 1:7f5f80b47892 | 276 | if((ARxB[i])==' ') {goto salto;} |
| angelocarrieri | 1:7f5f80b47892 | 277 | |
| angelocarrieri | 1:7f5f80b47892 | 278 | if(E==0) |
| angelocarrieri | 1:7f5f80b47892 | 279 | { |
| angelocarrieri | 1:7f5f80b47892 | 280 | if ((ARxB[i])=='E') |
| angelocarrieri | 1:7f5f80b47892 | 281 | { |
| angelocarrieri | 1:7f5f80b47892 | 282 | finelis++; |
| angelocarrieri | 1:7f5f80b47892 | 283 | E=1; |
| angelocarrieri | 1:7f5f80b47892 | 284 | goto salto; |
| angelocarrieri | 1:7f5f80b47892 | 285 | } |
| angelocarrieri | 1:7f5f80b47892 | 286 | } |
| angelocarrieri | 1:7f5f80b47892 | 287 | if(ER==0) |
| angelocarrieri | 1:7f5f80b47892 | 288 | { |
| angelocarrieri | 1:7f5f80b47892 | 289 | if(E==1) |
| angelocarrieri | 1:7f5f80b47892 | 290 | { |
| angelocarrieri | 1:7f5f80b47892 | 291 | if((ARxB[i])=='R') |
| angelocarrieri | 1:7f5f80b47892 | 292 | { |
| angelocarrieri | 1:7f5f80b47892 | 293 | finelis++; |
| angelocarrieri | 1:7f5f80b47892 | 294 | R=1; |
| angelocarrieri | 1:7f5f80b47892 | 295 | ER=1; |
| angelocarrieri | 1:7f5f80b47892 | 296 | goto salto; |
| angelocarrieri | 1:7f5f80b47892 | 297 | } |
| angelocarrieri | 1:7f5f80b47892 | 298 | else |
| angelocarrieri | 1:7f5f80b47892 | 299 | { |
| angelocarrieri | 1:7f5f80b47892 | 300 | E=0; |
| angelocarrieri | 1:7f5f80b47892 | 301 | finelis=0; |
| angelocarrieri | 1:7f5f80b47892 | 302 | goto salto; |
| angelocarrieri | 1:7f5f80b47892 | 303 | } |
| angelocarrieri | 1:7f5f80b47892 | 304 | } |
| angelocarrieri | 1:7f5f80b47892 | 305 | } |
| angelocarrieri | 1:7f5f80b47892 | 306 | if(R==1) |
| angelocarrieri | 1:7f5f80b47892 | 307 | { |
| angelocarrieri | 1:7f5f80b47892 | 308 | if((ARxB[i])=='R') |
| angelocarrieri | 1:7f5f80b47892 | 309 | { |
| angelocarrieri | 1:7f5f80b47892 | 310 | finelis++; |
| angelocarrieri | 1:7f5f80b47892 | 311 | ERR=1; |
| angelocarrieri | 1:7f5f80b47892 | 312 | goto salto; |
| angelocarrieri | 1:7f5f80b47892 | 313 | } |
| angelocarrieri | 1:7f5f80b47892 | 314 | else |
| angelocarrieri | 1:7f5f80b47892 | 315 | { |
| angelocarrieri | 1:7f5f80b47892 | 316 | finelis=0; |
| angelocarrieri | 1:7f5f80b47892 | 317 | E=0; |
| angelocarrieri | 1:7f5f80b47892 | 318 | R=0; |
| angelocarrieri | 1:7f5f80b47892 | 319 | ER=0; |
| angelocarrieri | 1:7f5f80b47892 | 320 | } |
| angelocarrieri | 1:7f5f80b47892 | 321 | } |
| angelocarrieri | 1:7f5f80b47892 | 322 | |
| angelocarrieri | 1:7f5f80b47892 | 323 | } // End if(ERR==0) |
| angelocarrieri | 1:7f5f80b47892 | 324 | |
| angelocarrieri | 1:7f5f80b47892 | 325 | salto: |
| angelocarrieri | 1:7f5f80b47892 | 326 | |
| angelocarrieri | 1:7f5f80b47892 | 327 | led=1; |
| angelocarrieri | 1:7f5f80b47892 | 328 | |
| angelocarrieri | 1:7f5f80b47892 | 329 | } // End ciclo for |
| angelocarrieri | 1:7f5f80b47892 | 330 | |
| angelocarrieri | 1:7f5f80b47892 | 331 | if(finelis==3) |
| angelocarrieri | 1:7f5f80b47892 | 332 | { |
| angelocarrieri | 1:7f5f80b47892 | 333 | LedRED(); |
| angelocarrieri | 1:7f5f80b47892 | 334 | } |
| angelocarrieri | 1:7f5f80b47892 | 335 | else |
| angelocarrieri | 1:7f5f80b47892 | 336 | { |
| angelocarrieri | 1:7f5f80b47892 | 337 | LedGREEN(); |
| angelocarrieri | 1:7f5f80b47892 | 338 | } |
| angelocarrieri | 1:7f5f80b47892 | 339 | |
| angelocarrieri | 1:7f5f80b47892 | 340 | } |
| angelocarrieri | 1:7f5f80b47892 | 341 | |
| angelocarrieri | 1:7f5f80b47892 | 342 | void LedGREEN() |
| angelocarrieri | 1:7f5f80b47892 | 343 | { |
| angelocarrieri | 1:7f5f80b47892 | 344 | |
| angelocarrieri | 1:7f5f80b47892 | 345 | // Il primo led emette la luce verde |
| angelocarrieri | 1:7f5f80b47892 | 346 | for(i = 0; i <= 3; i++) |
| angelocarrieri | 1:7f5f80b47892 | 347 | VettoreLED[i]=204; |
| angelocarrieri | 1:7f5f80b47892 | 348 | |
| angelocarrieri | 1:7f5f80b47892 | 349 | for(i = 4; i <= 7; i++) |
| angelocarrieri | 1:7f5f80b47892 | 350 | VettoreLED[i]=136; |
| angelocarrieri | 1:7f5f80b47892 | 351 | |
| angelocarrieri | 1:7f5f80b47892 | 352 | for(i = 8; i <= 11; i++) |
| angelocarrieri | 1:7f5f80b47892 | 353 | VettoreLED[i]=136; |
| angelocarrieri | 1:7f5f80b47892 | 354 | |
| angelocarrieri | 1:7f5f80b47892 | 355 | for(i = 12; i <= NumByte-1; i++) |
| angelocarrieri | 1:7f5f80b47892 | 356 | VettoreLED[i]=136; |
| angelocarrieri | 0:3eda4839be5c | 357 | |
| angelocarrieri | 1:7f5f80b47892 | 358 | // Ciclo per l'invio dei frame al primo led |
| angelocarrieri | 1:7f5f80b47892 | 359 | for(j = 0; j < NumByte; j++) |
| angelocarrieri | 1:7f5f80b47892 | 360 | myspi.write(VettoreLED[j]); |
| angelocarrieri | 1:7f5f80b47892 | 361 | |
| angelocarrieri | 1:7f5f80b47892 | 362 | } |
| angelocarrieri | 1:7f5f80b47892 | 363 | |
| angelocarrieri | 1:7f5f80b47892 | 364 | void LedRED() |
| angelocarrieri | 1:7f5f80b47892 | 365 | { |
| angelocarrieri | 1:7f5f80b47892 | 366 | // Il primo led emette la luce verde |
| angelocarrieri | 1:7f5f80b47892 | 367 | for(i = 0; i <= 3; i++) |
| angelocarrieri | 1:7f5f80b47892 | 368 | VettoreLED[i]=136; |
| angelocarrieri | 1:7f5f80b47892 | 369 | |
| angelocarrieri | 1:7f5f80b47892 | 370 | for(i = 4; i <= 7; i++) |
| angelocarrieri | 1:7f5f80b47892 | 371 | VettoreLED[i]=204; |
| angelocarrieri | 1:7f5f80b47892 | 372 | |
| angelocarrieri | 1:7f5f80b47892 | 373 | for(i = 8; i <= 11; i++) |
| angelocarrieri | 1:7f5f80b47892 | 374 | VettoreLED[i]=136; |
| angelocarrieri | 1:7f5f80b47892 | 375 | |
| angelocarrieri | 1:7f5f80b47892 | 376 | for(i = 12; i <= NumByte-1; i++) |
| angelocarrieri | 1:7f5f80b47892 | 377 | VettoreLED[i]=136; |
| angelocarrieri | 0:3eda4839be5c | 378 | |
| angelocarrieri | 1:7f5f80b47892 | 379 | // Ciclo per l'invio dei frame al primo led |
| angelocarrieri | 1:7f5f80b47892 | 380 | for(j = 0; j < NumByte; j++) |
| angelocarrieri | 1:7f5f80b47892 | 381 | myspi.write(VettoreLED[j]); |
| angelocarrieri | 1:7f5f80b47892 | 382 | |
| angelocarrieri | 1:7f5f80b47892 | 383 | } |
| angelocarrieri | 1:7f5f80b47892 | 384 | |
| angelocarrieri | 1:7f5f80b47892 | 385 | void LedOFF() |
| angelocarrieri | 1:7f5f80b47892 | 386 | { |
| angelocarrieri | 1:7f5f80b47892 | 387 | |
| angelocarrieri | 1:7f5f80b47892 | 388 | // Il primo led emette la luce verde |
| angelocarrieri | 0:3eda4839be5c | 389 | for(i = 0; i <= 3; i++) |
| angelocarrieri | 0:3eda4839be5c | 390 | VettoreLED[i]=136; |
| angelocarrieri | 0:3eda4839be5c | 391 | |
| angelocarrieri | 0:3eda4839be5c | 392 | for(i = 4; i <= 7; i++) |
| angelocarrieri | 0:3eda4839be5c | 393 | VettoreLED[i]=136; |
| angelocarrieri | 0:3eda4839be5c | 394 | |
| angelocarrieri | 0:3eda4839be5c | 395 | for(i = 8; i <= 11; i++) |
| angelocarrieri | 0:3eda4839be5c | 396 | VettoreLED[i]=136; |
| angelocarrieri | 0:3eda4839be5c | 397 | |
| angelocarrieri | 0:3eda4839be5c | 398 | for(i = 12; i <= NumByte-1; i++) |
| angelocarrieri | 0:3eda4839be5c | 399 | VettoreLED[i]=136; |
| angelocarrieri | 0:3eda4839be5c | 400 | |
| angelocarrieri | 1:7f5f80b47892 | 401 | // Ciclo per l'invio dei frame al primo led |
| angelocarrieri | 0:3eda4839be5c | 402 | for(j = 0; j < NumByte; j++) |
| angelocarrieri | 1:7f5f80b47892 | 403 | myspi.write(VettoreLED[j]); |
| angelocarrieri | 0:3eda4839be5c | 404 | |
| angelocarrieri | 1:7f5f80b47892 | 405 | } |
| angelocarrieri | 0:3eda4839be5c | 406 | |
| angelocarrieri | 0:3eda4839be5c | 407 | |
| angelocarrieri | 0:3eda4839be5c | 408 | |
| angelocarrieri | 1:7f5f80b47892 | 409 | |
| angelocarrieri | 1:7f5f80b47892 | 410 | |
| angelocarrieri | 0:3eda4839be5c | 411 | |
| angelocarrieri | 0:3eda4839be5c | 412 | |
| angelocarrieri | 0:3eda4839be5c | 413 | |
| angelocarrieri | 0:3eda4839be5c | 414 | |
| angelocarrieri | 0:3eda4839be5c | 415 | |
| angelocarrieri | 0:3eda4839be5c | 416 | |
| angelocarrieri | 0:3eda4839be5c | 417 | |
| angelocarrieri | 0:3eda4839be5c | 418 | |
| angelocarrieri | 0:3eda4839be5c | 419 | |
| angelocarrieri | 0:3eda4839be5c | 420 | |
| angelocarrieri | 0:3eda4839be5c | 421 | |
| angelocarrieri | 0:3eda4839be5c | 422 | |
| angelocarrieri | 0:3eda4839be5c | 423 | |
| angelocarrieri | 0:3eda4839be5c | 424 | |
| angelocarrieri | 0:3eda4839be5c | 425 | |
| angelocarrieri | 0:3eda4839be5c | 426 | |
| angelocarrieri | 0:3eda4839be5c | 427 | |
| angelocarrieri | 0:3eda4839be5c | 428 | |
| angelocarrieri | 0:3eda4839be5c | 429 | |
| angelocarrieri | 0:3eda4839be5c | 430 | |
| angelocarrieri | 0:3eda4839be5c | 431 | |
| angelocarrieri | 0:3eda4839be5c | 432 | |
| angelocarrieri | 0:3eda4839be5c | 433 | |
| angelocarrieri | 0:3eda4839be5c | 434 | |
| angelocarrieri | 0:3eda4839be5c | 435 | |
| angelocarrieri | 0:3eda4839be5c | 436 | |
| angelocarrieri | 0:3eda4839be5c | 437 | |
| angelocarrieri | 0:3eda4839be5c | 438 | |
| angelocarrieri | 0:3eda4839be5c | 439 | |
| angelocarrieri | 0:3eda4839be5c | 440 | |
| angelocarrieri | 0:3eda4839be5c | 441 | |
| angelocarrieri | 0:3eda4839be5c | 442 | |
| angelocarrieri | 0:3eda4839be5c | 443 | |
| angelocarrieri | 0:3eda4839be5c | 444 | |
| angelocarrieri | 0:3eda4839be5c | 445 | |
| angelocarrieri | 0:3eda4839be5c | 446 | |
| angelocarrieri | 0:3eda4839be5c | 447 | |
| angelocarrieri | 0:3eda4839be5c | 448 | |
| angelocarrieri | 0:3eda4839be5c | 449 | |
| angelocarrieri | 0:3eda4839be5c | 450 | |
| angelocarrieri | 0:3eda4839be5c | 451 | |
| angelocarrieri | 0:3eda4839be5c | 452 | |
| angelocarrieri | 0:3eda4839be5c | 453 | |
| angelocarrieri | 0:3eda4839be5c | 454 | |
| angelocarrieri | 0:3eda4839be5c | 455 | |
| angelocarrieri | 0:3eda4839be5c | 456 | |
| angelocarrieri | 0:3eda4839be5c | 457 | |
| angelocarrieri | 0:3eda4839be5c | 458 | |
| angelocarrieri | 0:3eda4839be5c | 459 | |
| angelocarrieri | 0:3eda4839be5c | 460 | |
| angelocarrieri | 0:3eda4839be5c | 461 | |
| angelocarrieri | 0:3eda4839be5c | 462 | |
| angelocarrieri | 0:3eda4839be5c | 463 | |
| angelocarrieri | 0:3eda4839be5c | 464 | |
| angelocarrieri | 0:3eda4839be5c | 465 | |
| angelocarrieri | 0:3eda4839be5c | 466 | |
| angelocarrieri | 0:3eda4839be5c | 467 | |
| angelocarrieri | 0:3eda4839be5c | 468 | |
| angelocarrieri | 0:3eda4839be5c | 469 | |
| angelocarrieri | 0:3eda4839be5c | 470 | |
| angelocarrieri | 0:3eda4839be5c | 471 | |
| angelocarrieri | 0:3eda4839be5c | 472 | |
| angelocarrieri | 0:3eda4839be5c | 473 |