atsushi uno
/
CANHelloTest
Mbed Studio Test upload
main.cpp@0:22ffaa4d0128, 2019-05-11 (annotated)
- Committer:
- aie
- Date:
- Sat May 11 01:59:39 2019 +0000
- Revision:
- 0:22ffaa4d0128
Mbed Studio up load
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
aie | 0:22ffaa4d0128 | 1 | #include "mbed.h" |
aie | 0:22ffaa4d0128 | 2 | |
aie | 0:22ffaa4d0128 | 3 | Ticker ticker; |
aie | 0:22ffaa4d0128 | 4 | Ticker ticker2; |
aie | 0:22ffaa4d0128 | 5 | |
aie | 0:22ffaa4d0128 | 6 | DigitalOut led1(LED1); |
aie | 0:22ffaa4d0128 | 7 | DigitalOut led2(LED2); |
aie | 0:22ffaa4d0128 | 8 | DigitalOut led3(LED3); |
aie | 0:22ffaa4d0128 | 9 | DigitalOut led4(LED4); |
aie | 0:22ffaa4d0128 | 10 | |
aie | 0:22ffaa4d0128 | 11 | CAN can2(p9, p10); |
aie | 0:22ffaa4d0128 | 12 | CAN can1(p30, p29); |
aie | 0:22ffaa4d0128 | 13 | char counter = 0; |
aie | 0:22ffaa4d0128 | 14 | |
aie | 0:22ffaa4d0128 | 15 | void send() { |
aie | 0:22ffaa4d0128 | 16 | |
aie | 0:22ffaa4d0128 | 17 | led1 = !led1; |
aie | 0:22ffaa4d0128 | 18 | return; |
aie | 0:22ffaa4d0128 | 19 | |
aie | 0:22ffaa4d0128 | 20 | printf("send()\n"); |
aie | 0:22ffaa4d0128 | 21 | unsigned char d[8]; |
aie | 0:22ffaa4d0128 | 22 | d[0] = d[1] = 0xFF; |
aie | 0:22ffaa4d0128 | 23 | d[2] = 0x00; |
aie | 0:22ffaa4d0128 | 24 | d[3] = 0xaa; |
aie | 0:22ffaa4d0128 | 25 | d[4] = 0xc0; |
aie | 0:22ffaa4d0128 | 26 | d[5] = d[6] = d[7] = 0; |
aie | 0:22ffaa4d0128 | 27 | |
aie | 0:22ffaa4d0128 | 28 | if(can1.write(CANMessage(0x7C1, (char *)d, 8))) { |
aie | 0:22ffaa4d0128 | 29 | //printf("wloop()\n"); |
aie | 0:22ffaa4d0128 | 30 | counter++; |
aie | 0:22ffaa4d0128 | 31 | //printf("Message sent: %d\n", counter); |
aie | 0:22ffaa4d0128 | 32 | } |
aie | 0:22ffaa4d0128 | 33 | led1 = !led1; |
aie | 0:22ffaa4d0128 | 34 | } |
aie | 0:22ffaa4d0128 | 35 | void send2() { |
aie | 0:22ffaa4d0128 | 36 | printf("send()\n"); |
aie | 0:22ffaa4d0128 | 37 | unsigned char d[8]; |
aie | 0:22ffaa4d0128 | 38 | d[0] = d[1] = 0x55; |
aie | 0:22ffaa4d0128 | 39 | d[2] = 0x00; |
aie | 0:22ffaa4d0128 | 40 | d[3] = 0xaa; |
aie | 0:22ffaa4d0128 | 41 | d[4] = 0xc0; |
aie | 0:22ffaa4d0128 | 42 | d[5] = d[6] = d[7] = 0; |
aie | 0:22ffaa4d0128 | 43 | |
aie | 0:22ffaa4d0128 | 44 | if(can2.write(CANMessage(0x0301, (char *)d, 8))) { |
aie | 0:22ffaa4d0128 | 45 | //printf("wloop()\n"); |
aie | 0:22ffaa4d0128 | 46 | counter++; |
aie | 0:22ffaa4d0128 | 47 | //printf("Message sent: %d\n", counter); |
aie | 0:22ffaa4d0128 | 48 | } |
aie | 0:22ffaa4d0128 | 49 | led3 = !led3; |
aie | 0:22ffaa4d0128 | 50 | } |
aie | 0:22ffaa4d0128 | 51 | int main() { |
aie | 0:22ffaa4d0128 | 52 | printf("main()\n"); |
aie | 0:22ffaa4d0128 | 53 | can1.frequency(500000); |
aie | 0:22ffaa4d0128 | 54 | can2.frequency(500000); |
aie | 0:22ffaa4d0128 | 55 | ticker.attach(&send, 1); |
aie | 0:22ffaa4d0128 | 56 | ticker2.attach(&send2, 1); |
aie | 0:22ffaa4d0128 | 57 | |
aie | 0:22ffaa4d0128 | 58 | CANMessage msg; |
aie | 0:22ffaa4d0128 | 59 | while(1) { |
aie | 0:22ffaa4d0128 | 60 | //printf("loop()\n"); |
aie | 0:22ffaa4d0128 | 61 | if(can2.read(msg)) { |
aie | 0:22ffaa4d0128 | 62 | printf("Message received: %d\n", msg.data[0]); |
aie | 0:22ffaa4d0128 | 63 | led2 = !led2; |
aie | 0:22ffaa4d0128 | 64 | } |
aie | 0:22ffaa4d0128 | 65 | if(can1.read(msg)) { |
aie | 0:22ffaa4d0128 | 66 | printf("Message received: %d\n", msg.data[0]); |
aie | 0:22ffaa4d0128 | 67 | led4 = !led4; |
aie | 0:22ffaa4d0128 | 68 | } |
aie | 0:22ffaa4d0128 | 69 | |
aie | 0:22ffaa4d0128 | 70 | wait(0.1); |
aie | 0:22ffaa4d0128 | 71 | } |
aie | 0:22ffaa4d0128 | 72 | } |