Annick Senecal / Mbed 2 deprecated Cacanne

Dependencies:   mbed-rtos mbed

Committer:
annicksenecal
Date:
Sun Dec 15 15:46:51 2013 +0000
Revision:
1:48351dcae5b4
Parent:
0:fead003a74cb
Child:
2:cad8d2ec9667
Programme final ? remettre

Who changed what in which revision?

UserRevisionLine numberNew contents of line
annicksenecal 0:fead003a74cb 1 #include "mbed.h"
annicksenecal 1:48351dcae5b4 2 #include "rtos.h"
annicksenecal 0:fead003a74cb 3
annicksenecal 0:fead003a74cb 4 DigitalOut led1(LED1);
annicksenecal 0:fead003a74cb 5 DigitalOut led2(LED2);
annicksenecal 0:fead003a74cb 6 CAN can1(p9, p10);
annicksenecal 0:fead003a74cb 7 CAN can2(p30, p29);
annicksenecal 1:48351dcae5b4 8
annicksenecal 1:48351dcae5b4 9
annicksenecal 1:48351dcae5b4 10 void sendCan1(void const *args)
annicksenecal 1:48351dcae5b4 11 {
annicksenecal 1:48351dcae5b4 12
annicksenecal 1:48351dcae5b4 13 char counter1 = 80;
annicksenecal 1:48351dcae5b4 14
annicksenecal 0:fead003a74cb 15 while(1) {
annicksenecal 1:48351dcae5b4 16
annicksenecal 1:48351dcae5b4 17
annicksenecal 1:48351dcae5b4 18 printf("send()\n");
annicksenecal 1:48351dcae5b4 19 if(can1.write(CANMessage(0x0480, &counter1, 1))) {
annicksenecal 1:48351dcae5b4 20 printf("wloop()\n");
annicksenecal 1:48351dcae5b4 21
annicksenecal 1:48351dcae5b4 22 printf("Message sent: %d\n", counter1);
annicksenecal 1:48351dcae5b4 23 counter1++;
annicksenecal 1:48351dcae5b4 24 }
annicksenecal 1:48351dcae5b4 25 if (counter1 >89) {
annicksenecal 1:48351dcae5b4 26 counter1 = 80;
annicksenecal 1:48351dcae5b4 27 }
annicksenecal 1:48351dcae5b4 28 led1 = !led1;
annicksenecal 1:48351dcae5b4 29 Thread::wait(1842);
annicksenecal 0:fead003a74cb 30 }
annicksenecal 0:fead003a74cb 31 }
annicksenecal 0:fead003a74cb 32
annicksenecal 1:48351dcae5b4 33 void sendCan2(void const *args)
annicksenecal 1:48351dcae5b4 34 {
annicksenecal 1:48351dcae5b4 35
annicksenecal 1:48351dcae5b4 36 char counter2 = 180;
annicksenecal 1:48351dcae5b4 37
annicksenecal 1:48351dcae5b4 38 while(1) {
annicksenecal 1:48351dcae5b4 39 printf("send()\n");
annicksenecal 1:48351dcae5b4 40 if(can1.write(CANMessage(0x0580,&counter2,1))) {
annicksenecal 1:48351dcae5b4 41 printf("wloop()\n");
annicksenecal 1:48351dcae5b4 42
annicksenecal 1:48351dcae5b4 43 printf("Message sent: %d\n", counter2);
annicksenecal 1:48351dcae5b4 44 counter2++;
annicksenecal 1:48351dcae5b4 45 }
annicksenecal 1:48351dcae5b4 46 if (counter2 >189) {
annicksenecal 1:48351dcae5b4 47 counter2 = 180;
annicksenecal 1:48351dcae5b4 48 }
annicksenecal 1:48351dcae5b4 49 led1 = !led1;
annicksenecal 1:48351dcae5b4 50 Thread::wait(2351);
annicksenecal 1:48351dcae5b4 51 }
annicksenecal 1:48351dcae5b4 52 }
annicksenecal 1:48351dcae5b4 53
annicksenecal 1:48351dcae5b4 54 void receptionMsg(void const *args)
annicksenecal 1:48351dcae5b4 55 {
annicksenecal 1:48351dcae5b4 56
annicksenecal 1:48351dcae5b4 57 CANMessage msg;
annicksenecal 1:48351dcae5b4 58
annicksenecal 1:48351dcae5b4 59 while(1) {
annicksenecal 1:48351dcae5b4 60 printf("reception()\n");
annicksenecal 1:48351dcae5b4 61 if(can2.read(msg))
annicksenecal 1:48351dcae5b4 62 printf("Message received: %x\n", msg.id);
annicksenecal 1:48351dcae5b4 63 if (msg.id == 1234)
annicksenecal 1:48351dcae5b4 64 printf("Message received: %d\n", msg.data[0]);
annicksenecal 1:48351dcae5b4 65 Thread::wait(958);
annicksenecal 1:48351dcae5b4 66 led2 = !led2;
annicksenecal 1:48351dcae5b4 67 }
annicksenecal 1:48351dcae5b4 68 }
annicksenecal 1:48351dcae5b4 69
annicksenecal 1:48351dcae5b4 70 int main()
annicksenecal 1:48351dcae5b4 71 {
annicksenecal 1:48351dcae5b4 72
annicksenecal 1:48351dcae5b4 73 printf("main()\n");
annicksenecal 1:48351dcae5b4 74
annicksenecal 1:48351dcae5b4 75 Thread thread1(sendCan1);
annicksenecal 1:48351dcae5b4 76 Thread thread2(sendCan2);
annicksenecal 1:48351dcae5b4 77 Thread thread3(receptionMsg);
annicksenecal 1:48351dcae5b4 78 while(true);
annicksenecal 1:48351dcae5b4 79
annicksenecal 1:48351dcae5b4 80 }