DIISWAG / Mbed 2 deprecated CAN_Database

Dependencies:   mbed mbed-rtos

Committer:
Taliarte
Date:
Tue May 23 07:20:59 2017 +0000
Revision:
2:654aafc318bf
Parent:
1:6f8bf5bdc70f
Child:
4:4051a72a22f7
Child:
5:e7fa92a21eff
AVAnce;

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 2:654aafc318bf 18 CANMessage MessageBuzzer;
Taliarte 2:654aafc318bf 19
Taliarte 2:654aafc318bf 20 bool Send_Buzz=false; // Envoyer tramme au buzzer
Taliarte 2:654aafc318bf 21
Taliarte 1:6f8bf5bdc70f 22 unsigned int Id;
dedounet 0:bcbc14441ee8 23
Taliarte 1:6f8bf5bdc70f 24
Taliarte 1:6f8bf5bdc70f 25 void canReader(void)
Taliarte 1:6f8bf5bdc70f 26 {
Taliarte 1:6f8bf5bdc70f 27
Taliarte 1:6f8bf5bdc70f 28
Taliarte 1:6f8bf5bdc70f 29 if (CanPort.read(MessageRx))
Taliarte 1:6f8bf5bdc70f 30 {
Taliarte 1:6f8bf5bdc70f 31 led1 = !led1;
Taliarte 1:6f8bf5bdc70f 32 threadA.signal_set(SIG_RX_CAN);
Taliarte 1:6f8bf5bdc70f 33 }
Taliarte 1:6f8bf5bdc70f 34
Taliarte 1:6f8bf5bdc70f 35 }
Taliarte 1:6f8bf5bdc70f 36
Taliarte 1:6f8bf5bdc70f 37
Taliarte 1:6f8bf5bdc70f 38 void thA()
Taliarte 1:6f8bf5bdc70f 39 {
Taliarte 1:6f8bf5bdc70f 40 while(true)
Taliarte 1:6f8bf5bdc70f 41 {
Taliarte 1:6f8bf5bdc70f 42 Thread::signal_wait(SIG_RX_CAN);
Taliarte 1:6f8bf5bdc70f 43 led2 = !led2;
Taliarte 1:6f8bf5bdc70f 44 printf("RX FRAME ID = %X\n\r",MessageRx.id);
Taliarte 1:6f8bf5bdc70f 45
dedounet 0:bcbc14441ee8 46 }
dedounet 0:bcbc14441ee8 47 }
Taliarte 1:6f8bf5bdc70f 48
Taliarte 1:6f8bf5bdc70f 49 void thB()
Taliarte 1:6f8bf5bdc70f 50 {
Taliarte 2:654aafc318bf 51 while(true)
Taliarte 1:6f8bf5bdc70f 52 {
Taliarte 1:6f8bf5bdc70f 53 led1 = !led1;
Taliarte 1:6f8bf5bdc70f 54 printf("TIC3s\n\r");
Taliarte 2:654aafc318bf 55 MessageBuzzer.id=Id;
Taliarte 2:654aafc318bf 56 CanPort.write(MessageBuzzer);
Taliarte 2:654aafc318bf 57 /*if (Id < 0x3FF) Id++;
Taliarte 2:654aafc318bf 58 else Id = 0x000;*/
Taliarte 1:6f8bf5bdc70f 59
Taliarte 1:6f8bf5bdc70f 60 wait(3);
Taliarte 1:6f8bf5bdc70f 61 }
Taliarte 1:6f8bf5bdc70f 62 }
Taliarte 1:6f8bf5bdc70f 63
Taliarte 1:6f8bf5bdc70f 64 int main()
Taliarte 1:6f8bf5bdc70f 65 {
Taliarte 2:654aafc318bf 66
Taliarte 2:654aafc318bf 67
Taliarte 1:6f8bf5bdc70f 68 CanPort.frequency(20000);
Taliarte 1:6f8bf5bdc70f 69
Taliarte 2:654aafc318bf 70 Id = 0x222;
Taliarte 2:654aafc318bf 71 MessageBuzzer.len=1;
Taliarte 2:654aafc318bf 72 MessageBuzzer.data[0] = 0x01;
Taliarte 2:654aafc318bf 73 //MessageTx.data[1] = 0xAA;
Taliarte 1:6f8bf5bdc70f 74
Taliarte 1:6f8bf5bdc70f 75 MessageTx.format = CANStandard;
Taliarte 1:6f8bf5bdc70f 76 //MessageTx.format = CANExtended;
Taliarte 1:6f8bf5bdc70f 77
Taliarte 1:6f8bf5bdc70f 78 MessageTx.type = CANData;
Taliarte 1:6f8bf5bdc70f 79 //MessageTx.type = CANRemote;
Taliarte 1:6f8bf5bdc70f 80
Taliarte 1:6f8bf5bdc70f 81 CanPort.attach(canReader,CAN::RxIrq);
Taliarte 1:6f8bf5bdc70f 82
Taliarte 1:6f8bf5bdc70f 83 threadA.start(thA);
Taliarte 1:6f8bf5bdc70f 84 threadB.start(thB);
Taliarte 1:6f8bf5bdc70f 85
Taliarte 1:6f8bf5bdc70f 86 led1 = 0;
Taliarte 2:654aafc318bf 87
Taliarte 1:6f8bf5bdc70f 88 while (true)
Taliarte 1:6f8bf5bdc70f 89 {
Taliarte 1:6f8bf5bdc70f 90
Taliarte 1:6f8bf5bdc70f 91 }
Taliarte 1:6f8bf5bdc70f 92 }