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
main.cpp@21:a867c9454f21, 2015-08-19 (annotated)
- Committer:
- MaxScorda
- Date:
- Wed Aug 19 23:45:39 2015 +0000
- Revision:
- 21:a867c9454f21
- Parent:
- 20:fc0a3050c5d1
- Child:
- 23:b7bd85345617
first test flash and io async
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MaxScorda | 0:dd5e64dd6caf | 1 | #include "mbed.h" |
MaxScorda | 1:e17894b4be01 | 2 | #include "config.h" |
MaxScorda | 4:aa08e8d5ac27 | 3 | #include "IOFuncLib.h" |
MaxScorda | 1:e17894b4be01 | 4 | |
MaxScorda | 7:f57abb3f0d3f | 5 | |
MaxScorda | 4:aa08e8d5ac27 | 6 | //init standard |
MaxScorda | 0:dd5e64dd6caf | 7 | InterruptIn mybutton(USER_BUTTON); |
MaxScorda | 0:dd5e64dd6caf | 8 | Serial pc(SERIAL_TX, SERIAL_RX); //Apertura della seriale 2 |
MaxScorda | 3:2f32e34d820c | 9 | Serial ardser(PA_11, PA_12); //Apertura della seriale 1 *opzionale vedi sotto |
MaxScorda | 4:aa08e8d5ac27 | 10 | //init funzioni personal lib |
MaxScorda | 4:aa08e8d5ac27 | 11 | Flasher led(LED1); |
MaxScorda | 5:4d547f4c1278 | 12 | Screen sc(&pc); |
MaxScorda | 7:f57abb3f0d3f | 13 | genFunctions fnz; |
MaxScorda | 7:f57abb3f0d3f | 14 | |
MaxScorda | 4:aa08e8d5ac27 | 15 | //var |
MaxScorda | 13:92303a41947a | 16 | int cont=0; |
MaxScorda | 12:78f6112c900f | 17 | int dispType=0; //0:oled 1:lcd |
MaxScorda | 20:fc0a3050c5d1 | 18 | bool realExtraSerial=true; //se true manda fuori solo le info reali senno demo |
MaxScorda | 20:fc0a3050c5d1 | 19 | |
MaxScorda | 1:e17894b4be01 | 20 | |
MaxScorda | 4:aa08e8d5ac27 | 21 | //------------ Funzioni ------------- |
MaxScorda | 12:78f6112c900f | 22 | #include "macroDisp.h" |
MaxScorda | 7:f57abb3f0d3f | 23 | #include "Functions.h" |
MaxScorda | 3:2f32e34d820c | 24 | |
MaxScorda | 0:dd5e64dd6caf | 25 | int main() |
MaxScorda | 0:dd5e64dd6caf | 26 | { |
MaxScorda | 19:8a436200d76c | 27 | // Seriale Principale |
MaxScorda | 0:dd5e64dd6caf | 28 | char c; // variabile che contiene il carattere appena ricevuto |
MaxScorda | 0:dd5e64dd6caf | 29 | char buffer[128]; // buffer di accumulo dei caratteri in sequenza |
MaxScorda | 0:dd5e64dd6caf | 30 | char i=0; // variabile di comodo per il conteggio dei caratteri |
MaxScorda | 19:8a436200d76c | 31 | // Seriale esterna Arduino |
MaxScorda | 19:8a436200d76c | 32 | char ce; // variabile che contiene il carattere appena ricevuto |
MaxScorda | 19:8a436200d76c | 33 | char buffere[128]; // buffer di accumulo dei caratteri in sequenza |
MaxScorda | 19:8a436200d76c | 34 | char ie=0; // variabile di comodo per il conteggio dei caratteri |
MaxScorda | 1:e17894b4be01 | 35 | //Serial config |
MaxScorda | 1:e17894b4be01 | 36 | pc.baud(SERIAL1BAUD); |
MaxScorda | 1:e17894b4be01 | 37 | ardser.baud(SERIALARDBAUD); |
MaxScorda | 4:aa08e8d5ac27 | 38 | //pc.format(int bits=8, Parity parity=SerialBase::None, int stop_bits=1) |
MaxScorda | 3:2f32e34d820c | 39 | |
MaxScorda | 0:dd5e64dd6caf | 40 | mybutton.fall(&pressed); |
MaxScorda | 6:f8865b6d592a | 41 | sc.emptyFrame(); |
MaxScorda | 19:8a436200d76c | 42 | sc.banner(); |
MaxScorda | 18:dbe0172cca20 | 43 | //ardser |
MaxScorda | 18:dbe0172cca20 | 44 | ardser.printf("Connected\r"); |
MaxScorda | 13:92303a41947a | 45 | // display |
MaxScorda | 13:92303a41947a | 46 | initDisp(dispType); |
MaxScorda | 13:92303a41947a | 47 | setFontDisp(dispType,'N'); |
MaxScorda | 17:7c8c37fbec9f | 48 | bannerDisp(dispType); |
MaxScorda | 0:dd5e64dd6caf | 49 | |
MaxScorda | 0:dd5e64dd6caf | 50 | while(1) { |
MaxScorda | 3:2f32e34d820c | 51 | ardser.attach(&callback); |
MaxScorda | 19:8a436200d76c | 52 | //seriale interna |
MaxScorda | 0:dd5e64dd6caf | 53 | c=pc.getc(); //legge un carattere dalla seriale |
MaxScorda | 21:a867c9454f21 | 54 | inverseDisp(dispType); |
MaxScorda | 0:dd5e64dd6caf | 55 | if (c != 13) { |
MaxScorda | 0:dd5e64dd6caf | 56 | buffer[i]=c; // se il carattere è diverso da CarriageReturn (ASCII 13) lo memorizza nel buffer |
MaxScorda | 0:dd5e64dd6caf | 57 | i++; // incrementa il puntatore al buffer |
MaxScorda | 4:aa08e8d5ac27 | 58 | led.flash(2); |
MaxScorda | 0:dd5e64dd6caf | 59 | } else { |
MaxScorda | 0:dd5e64dd6caf | 60 | pc.printf("\n\r"); |
MaxScorda | 0:dd5e64dd6caf | 61 | buffer[i]=0; //se è un CR inserisci un carattere nullo nel buffer per delimitare la stringa |
MaxScorda | 8:3f1d8c55b3a0 | 62 | //controlla di non mandare solo un CR |
MaxScorda | 8:3f1d8c55b3a0 | 63 | if (i>0) { |
MaxScorda | 20:fc0a3050c5d1 | 64 | if (realExtraSerial==false) ardser.printf("\ncmd Ready\n\r"); |
MaxScorda | 8:3f1d8c55b3a0 | 65 | parser(buffer); |
MaxScorda | 10:5c406bde1edf | 66 | } else sc.commitScreen(); |
MaxScorda | 0:dd5e64dd6caf | 67 | i=0; //azzera la posizione del puntatore del buffer pronto per la ricezione di una nuova stringa |
MaxScorda | 19:8a436200d76c | 68 | } |
MaxScorda | 20:fc0a3050c5d1 | 69 | /* |
MaxScorda | 19:8a436200d76c | 70 | //seriale esterna |
MaxScorda | 19:8a436200d76c | 71 | ce=ardser.getc(); //legge un carattere dalla seriale |
MaxScorda | 19:8a436200d76c | 72 | if (ce != 13) { |
MaxScorda | 19:8a436200d76c | 73 | buffere[i]=ce; // se il carattere è diverso da CarriageReturn (ASCII 13) lo memorizza nel buffer |
MaxScorda | 19:8a436200d76c | 74 | ie++; // incrementa il puntatore al buffer |
MaxScorda | 19:8a436200d76c | 75 | led.flash(2); |
MaxScorda | 19:8a436200d76c | 76 | } else { |
MaxScorda | 19:8a436200d76c | 77 | ////? pc.printf("\n\r"); |
MaxScorda | 19:8a436200d76c | 78 | buffere[i]=0; //se è un CR inserisci un carattere nullo nel buffer per delimitare la stringa |
MaxScorda | 19:8a436200d76c | 79 | //controlla di non mandare solo un CR |
MaxScorda | 19:8a436200d76c | 80 | if (ie>0) { |
MaxScorda | 19:8a436200d76c | 81 | ////? ardser.printf("\ncmd Ready\n\r"); |
MaxScorda | 19:8a436200d76c | 82 | ////? parser(buffere); |
MaxScorda | 19:8a436200d76c | 83 | } else sc.commitScreen(); |
MaxScorda | 19:8a436200d76c | 84 | ie=0; //azzera la posizione del puntatore del buffer pronto per la ricezione di una nuova stringa |
MaxScorda | 0:dd5e64dd6caf | 85 | } |
MaxScorda | 20:fc0a3050c5d1 | 86 | */ |
MaxScorda | 0:dd5e64dd6caf | 87 | } |
MaxScorda | 0:dd5e64dd6caf | 88 | } |
MaxScorda | 6:f8865b6d592a | 89 | |
MaxScorda | 6:f8865b6d592a | 90 | |
MaxScorda | 20:fc0a3050c5d1 | 91 |