Console Serial IO con display OLED e seriale asincrona
Dependencies: mbed BufferedSerial AserialIOFuncLib SSD1306 TerminalPlusV2
Fork of SerialIO by
Console Serial IO con display OLED e seriale asincrona
Revision 0:dd5e64dd6caf, committed 2015-05-20
- Comitter:
- MaxScorda
- Date:
- Wed May 20 15:26:33 2015 +0000
- Child:
- 1:e17894b4be01
- Commit message:
- Primo step, interfaccia, tasto
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed May 20 15:26:33 2015 +0000 @@ -0,0 +1,55 @@ +#include "mbed.h" +DigitalOut myled1(LED1); //definisce myled +DigitalOut myled2(LED2); //definisce myled +InterruptIn mybutton(USER_BUTTON); +Serial pc(SERIAL_TX, SERIAL_RX); //Apertura della seriale 2 +//Serial pc(D8, D2); //Apertura della seriale 1 *opzionale vedi sotto + + +void pressed() +{ + pc.printf("\f"); + pc.printf("*** Reset Screen ***\n\r\n"); +} + +void banner() +{ + pc.printf("\f"); + pc.printf("----- Boot screen -----\n\r"); + pc.printf("--- Nucleo Scorda IO Test ---\n\r\n"); +} + + +int main() +{ + char c; // variabile che contiene il carattere appena ricevuto + char buffer[128]; // buffer di accumulo dei caratteri in sequenza + char i=0; // variabile di comodo per il conteggio dei caratteri + mybutton.fall(&pressed); + banner(); + + while(1) { + c=pc.getc(); //legge un carattere dalla seriale + if (c != 13) { + buffer[i]=c; // se il carattere è diverso da CarriageReturn (ASCII 13) lo memorizza nel buffer + i++; // incrementa il puntatore al buffer + } else { + pc.printf("\n\r"); + buffer[i]=0; //se è un CR inserisci un carattere nullo nel buffer per delimitare la stringa + i=0; //azzera la posizione del puntatore del buffer pronto per la ricezione di una nuova stringa + if ((strcmp(buffer,"on")==0) // confronta la stringa ricevuta con le costanti accettate per il comando di accensione del led + ||(strcmp(buffer,"acceso")==0) //la funzione strcmp fa parte della libreria string standard del C e confronta 2 stringhe + ||(strcmp(buffer,"apriti sesamo")==0)) { //restituendo 0 se le stringhe sono uguali. + pc.printf("Led ACCESO \n\r"); + myled1 = 1; //Accende il led + } + if ((strcmp(buffer,"off")==0) //Confronto per i comandi di spegnimento del led + ||(strcmp(buffer,"spento")==0) + ||(strcmp(buffer,"chiuditi sesamo")==0)) { + pc.printf("Led SPENTO !\n\r"); + + myled1 = 0; // spegne il led + } + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Wed May 20 15:26:33 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/dbbf35b96557 \ No newline at end of file