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.
main.cpp@1:48351dcae5b4, 2013-12-15 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |