DIISWAG / Mbed 2 deprecated CAN_Database

Dependencies:   mbed mbed-rtos

Committer:
Taliarte
Date:
Wed May 17 10:12:31 2017 +0000
Revision:
1:6f8bf5bdc70f
Parent:
0:bcbc14441ee8
Child:
2:654aafc318bf
Child:
3:35151308f847
Ajout lib + FS non fonctionel;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dedounet 0:bcbc14441ee8 1 #include "mbed.h"
Taliarte 1:6f8bf5bdc70f 2 #include "rtos.h"
Taliarte 1:6f8bf5bdc70f 3
Taliarte 1:6f8bf5bdc70f 4 #define SIG_RX_CAN 0x01
Taliarte 1:6f8bf5bdc70f 5
Taliarte 1:6f8bf5bdc70f 6
Taliarte 1:6f8bf5bdc70f 7 DigitalOut led1(LED1);
Taliarte 1:6f8bf5bdc70f 8 DigitalOut led2(LED2);
dedounet 0:bcbc14441ee8 9
Taliarte 1:6f8bf5bdc70f 10 Thread threadA;
Taliarte 1:6f8bf5bdc70f 11 Thread threadB;
Taliarte 1:6f8bf5bdc70f 12
Taliarte 1:6f8bf5bdc70f 13
Taliarte 1:6f8bf5bdc70f 14 CAN CanPort(p30, p29);
Taliarte 1:6f8bf5bdc70f 15 CANMessage MessageRx;
Taliarte 1:6f8bf5bdc70f 16 CANMessage MessageTx;
Taliarte 1:6f8bf5bdc70f 17
Taliarte 1:6f8bf5bdc70f 18 unsigned int Id;
dedounet 0:bcbc14441ee8 19
Taliarte 1:6f8bf5bdc70f 20
Taliarte 1:6f8bf5bdc70f 21 void canReader(void)
Taliarte 1:6f8bf5bdc70f 22 {
Taliarte 1:6f8bf5bdc70f 23
Taliarte 1:6f8bf5bdc70f 24
Taliarte 1:6f8bf5bdc70f 25 if (CanPort.read(MessageRx))
Taliarte 1:6f8bf5bdc70f 26 {
Taliarte 1:6f8bf5bdc70f 27 led1 = !led1;
Taliarte 1:6f8bf5bdc70f 28 threadA.signal_set(SIG_RX_CAN);
Taliarte 1:6f8bf5bdc70f 29 }
Taliarte 1:6f8bf5bdc70f 30
Taliarte 1:6f8bf5bdc70f 31 }
Taliarte 1:6f8bf5bdc70f 32
Taliarte 1:6f8bf5bdc70f 33
Taliarte 1:6f8bf5bdc70f 34 void thA()
Taliarte 1:6f8bf5bdc70f 35 {
Taliarte 1:6f8bf5bdc70f 36 while(true)
Taliarte 1:6f8bf5bdc70f 37 {
Taliarte 1:6f8bf5bdc70f 38 Thread::signal_wait(SIG_RX_CAN);
Taliarte 1:6f8bf5bdc70f 39 led2 = !led2;
Taliarte 1:6f8bf5bdc70f 40 printf("RX FRAME ID = %X\n\r",MessageRx.id);
Taliarte 1:6f8bf5bdc70f 41
dedounet 0:bcbc14441ee8 42 }
dedounet 0:bcbc14441ee8 43 }
Taliarte 1:6f8bf5bdc70f 44
Taliarte 1:6f8bf5bdc70f 45 void thB()
Taliarte 1:6f8bf5bdc70f 46 {
Taliarte 1:6f8bf5bdc70f 47 while (true)
Taliarte 1:6f8bf5bdc70f 48 {
Taliarte 1:6f8bf5bdc70f 49 led1 = !led1;
Taliarte 1:6f8bf5bdc70f 50 printf("TIC3s\n\r");
Taliarte 1:6f8bf5bdc70f 51 MessageTx.id=Id;
Taliarte 1:6f8bf5bdc70f 52 CanPort.write(MessageTx);
Taliarte 1:6f8bf5bdc70f 53
Taliarte 1:6f8bf5bdc70f 54 if (Id < 0x3FF) Id++;
Taliarte 1:6f8bf5bdc70f 55 else Id = 0x000;
Taliarte 1:6f8bf5bdc70f 56
Taliarte 1:6f8bf5bdc70f 57 wait(3);
Taliarte 1:6f8bf5bdc70f 58 }
Taliarte 1:6f8bf5bdc70f 59 }
Taliarte 1:6f8bf5bdc70f 60
Taliarte 1:6f8bf5bdc70f 61
Taliarte 1:6f8bf5bdc70f 62
Taliarte 1:6f8bf5bdc70f 63 int main()
Taliarte 1:6f8bf5bdc70f 64 {
Taliarte 1:6f8bf5bdc70f 65 CanPort.frequency(20000);
Taliarte 1:6f8bf5bdc70f 66
Taliarte 1:6f8bf5bdc70f 67 Id = 0x1A5;
Taliarte 1:6f8bf5bdc70f 68 MessageTx.len=2;
Taliarte 1:6f8bf5bdc70f 69 MessageTx.data[0] = 0x55;
Taliarte 1:6f8bf5bdc70f 70 MessageTx.data[1] = 0xAA;
Taliarte 1:6f8bf5bdc70f 71
Taliarte 1:6f8bf5bdc70f 72 MessageTx.format = CANStandard;
Taliarte 1:6f8bf5bdc70f 73 //MessageTx.format = CANExtended;
Taliarte 1:6f8bf5bdc70f 74
Taliarte 1:6f8bf5bdc70f 75 MessageTx.type = CANData;
Taliarte 1:6f8bf5bdc70f 76 //MessageTx.type = CANRemote;
Taliarte 1:6f8bf5bdc70f 77
Taliarte 1:6f8bf5bdc70f 78 CanPort.attach(canReader,CAN::RxIrq);
Taliarte 1:6f8bf5bdc70f 79
Taliarte 1:6f8bf5bdc70f 80 threadA.start(thA);
Taliarte 1:6f8bf5bdc70f 81 threadB.start(thB);
Taliarte 1:6f8bf5bdc70f 82
Taliarte 1:6f8bf5bdc70f 83 led1 = 0;
Taliarte 1:6f8bf5bdc70f 84 printf("Start OK\n\r");
Taliarte 1:6f8bf5bdc70f 85 LocalFileSystem local("local");
Taliarte 1:6f8bf5bdc70f 86 FILE *fp = fopen("/local/out.txt", "w"); // Open "out.txt" on the local file system for writing
Taliarte 1:6f8bf5bdc70f 87 fprintf(fp, "Hello World!");
Taliarte 1:6f8bf5bdc70f 88 fclose(fp);
Taliarte 1:6f8bf5bdc70f 89
Taliarte 1:6f8bf5bdc70f 90 while (true)
Taliarte 1:6f8bf5bdc70f 91 {
Taliarte 1:6f8bf5bdc70f 92
Taliarte 1:6f8bf5bdc70f 93 }
Taliarte 1:6f8bf5bdc70f 94 }