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:6f8bf5bdc70f, 2017-05-17 (annotated)
- 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?
User | Revision | Line number | New 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 | } |