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.
Dependencies: mbed
main.cpp@2:eeab69a684ad, 2018-01-23 (annotated)
- Committer:
- pinofal
- Date:
- Tue Jan 23 10:14:58 2018 +0000
- Revision:
- 2:eeab69a684ad
- Parent:
- 1:ce08f1d8140c
Serial Protocol PC-uC
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bcostm | 0:0ee4748f4c5c | 1 | #include "mbed.h" |
bcostm | 0:0ee4748f4c5c | 2 | |
pinofal | 2:eeab69a684ad | 3 | // dimensione del pacchetto di comunicazione tra PC e uC |
pinofal | 2:eeab69a684ad | 4 | #define PACKETDIM 33 |
bcostm | 1:ce08f1d8140c | 5 | |
pinofal | 2:eeab69a684ad | 6 | DigitalOut led(LED1); |
bcostm | 1:ce08f1d8140c | 7 | Serial pc(SERIAL_TX, SERIAL_RX); |
bcostm | 1:ce08f1d8140c | 8 | |
pinofal | 2:eeab69a684ad | 9 | // indice per i cicli |
pinofal | 2:eeab69a684ad | 10 | int nIndex; |
bcostm | 1:ce08f1d8140c | 11 | |
pinofal | 2:eeab69a684ad | 12 | // indice dell'array caRxPacket[] |
pinofal | 2:eeab69a684ad | 13 | volatile int nRxIndex; |
pinofal | 2:eeab69a684ad | 14 | // carattere in arrivo dal PC |
pinofal | 2:eeab69a684ad | 15 | volatile char caReadChar; |
bcostm | 0:0ee4748f4c5c | 16 | |
pinofal | 2:eeab69a684ad | 17 | // paccchetto ricevuto dal PC |
pinofal | 2:eeab69a684ad | 18 | char caRxPacket[PACKETDIM]; |
pinofal | 2:eeab69a684ad | 19 | int nRxPacketSize; |
bcostm | 0:0ee4748f4c5c | 20 | |
pinofal | 2:eeab69a684ad | 21 | void RxInterrupt(void) |
bcostm | 0:0ee4748f4c5c | 22 | { |
pinofal | 2:eeab69a684ad | 23 | // reset pacchetto ricevuto |
pinofal | 2:eeab69a684ad | 24 | nIndex=0; |
pinofal | 2:eeab69a684ad | 25 | for(nIndex=0;nIndex<PACKETDIM;nIndex++) |
pinofal | 2:eeab69a684ad | 26 | { |
pinofal | 2:eeab69a684ad | 27 | caRxPacket[nIndex]='\0'; |
pinofal | 2:eeab69a684ad | 28 | } |
pinofal | 2:eeab69a684ad | 29 | |
pinofal | 2:eeab69a684ad | 30 | // ricevi caratteri su seriale, se disponibili |
pinofal | 2:eeab69a684ad | 31 | while((pc.readable())) |
pinofal | 2:eeab69a684ad | 32 | { |
pinofal | 2:eeab69a684ad | 33 | pc.gets(caRxPacket,sizeof(caRxPacket)); |
pinofal | 2:eeab69a684ad | 34 | nRxPacketSize = strlen(caRxPacket); |
pinofal | 2:eeab69a684ad | 35 | //pc.printf("*** pc.readable = %2d \n\r",nRxPacketSize); |
pinofal | 2:eeab69a684ad | 36 | //pc.scanf("%s", &caRxPacket); |
pinofal | 2:eeab69a684ad | 37 | //+++pc.putc(pc.getc()); // read data from UART |
pinofal | 2:eeab69a684ad | 38 | |
pinofal | 2:eeab69a684ad | 39 | } |
pinofal | 2:eeab69a684ad | 40 | //+++pc.printf("%s",caRxPacket); |
pinofal | 2:eeab69a684ad | 41 | pc.printf("You also say goodbye to yours tk"); |
pinofal | 2:eeab69a684ad | 42 | } |
bcostm | 0:0ee4748f4c5c | 43 | |
pinofal | 2:eeab69a684ad | 44 | int main() |
pinofal | 2:eeab69a684ad | 45 | { |
pinofal | 2:eeab69a684ad | 46 | // configura velocità della comunicazione seriale su USB-VirtualCom e invia messaggio di benvenuto |
pinofal | 2:eeab69a684ad | 47 | //pc.baud(921600); //921600 bps |
pinofal | 2:eeab69a684ad | 48 | pc.baud(256000); //9600 bps |
pinofal | 2:eeab69a684ad | 49 | //pc.printf("*** SineWave Generation ***\n\r"); |
pinofal | 2:eeab69a684ad | 50 | |
pinofal | 2:eeab69a684ad | 51 | pc.attach(&RxInterrupt,Serial::RxIrq); |
pinofal | 2:eeab69a684ad | 52 | |
pinofal | 2:eeab69a684ad | 53 | while(true) |
pinofal | 2:eeab69a684ad | 54 | { |
bcostm | 0:0ee4748f4c5c | 55 | led = !led; // Toggle LED |
pinofal | 2:eeab69a684ad | 56 | } |
pinofal | 2:eeab69a684ad | 57 | } |