Console Serial IO con display OLED e seriale asincrona

Dependencies:   mbed BufferedSerial AserialIOFuncLib SSD1306 TerminalPlusV2

Fork of SerialIO by Max Scordamaglia

Console Serial IO con display OLED e seriale asincrona

Revision:
0:dd5e64dd6caf
Child:
1:e17894b4be01
--- /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
+            }
+        }
+    }
+}