![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Publication TP CAN
Dependencies: Dashboard_BUS_CAN Programme_BUS_CAN mbed
main.cpp
- Committer:
- KEG
- Date:
- 2018-06-05
- Revision:
- 0:4eee0a42e29b
File content as of revision 0:4eee0a42e29b:
#include "Dashboard.h" #include "mbed.h" #define SIG_RX_CAN 0x01 #define SIG_AFF 0x01 DigitalOut led1(LED1); DigitalOut led2(LED2); DigitalOut led3(LED3); Thread threadA; Thread threadB; CAN CanPort(p30, p29); CANMessage MessageRx; Dashboard dshbd(p28, p27); signed char dataToPrint[8]; void canReader(void) { if (CanPort.read(MessageRx)) { led1 = !led1; threadA.signal_set(SIG_RX_CAN); } } void readFrame(CANMessage msg){ if(msg.id==2){ int i=0; for(i=0;i<8;i++){ dataToPrint[i]=msg.data[i]; } } } void thA() { while(true) { Thread::signal_wait(SIG_RX_CAN); readFrame(MessageRx); led2 = !led2; threadB.signal_set(SIG_AFF); //printf("RX FRAME ID = %X\n",MessageRx.id); } } void thB() { //int i=0; while(true){ Thread::signal_wait(SIG_AFF); led3 = !led3; dshbd.clear(); dshbd.printData(dataToPrint); dshbd.changeColor(dataToPrint[0]); //wait(5); /*i++; if(i>7){i=0;}*/ //printData(); } } int main() { //Init CAN CanPort.frequency(20000); //Init LCD dshbd.setRGB(0xff, 0xff, 0xff); //set the color dshbd.print("Init System !"); dshbd.locate(0,1); wait(5); CanPort.attach(canReader,CAN::RxIrq); threadA.start(thA); threadB.start(thB); while(1) { } }