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@0:8097eeede645, 2015-08-02 (annotated)
- Committer:
- mariob
- Date:
- Sun Aug 02 12:55:55 2015 +0000
- Revision:
- 0:8097eeede645
- Child:
- 1:8446a0d14877
first commit: ECU tester
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| mariob | 0:8097eeede645 | 1 | #include "mbed.h" |
| mariob | 0:8097eeede645 | 2 | |
| mariob | 0:8097eeede645 | 3 | #include "net.hpp" |
| mariob | 0:8097eeede645 | 4 | |
| mariob | 0:8097eeede645 | 5 | /* |
| mariob | 0:8097eeede645 | 6 | Ticker ticker; |
| mariob | 0:8097eeede645 | 7 | DigitalOut led1(LED1); |
| mariob | 0:8097eeede645 | 8 | DigitalOut led2(LED2); |
| mariob | 0:8097eeede645 | 9 | CAN can1(p9, p10); |
| mariob | 0:8097eeede645 | 10 | CAN can2(p30, p29); |
| mariob | 0:8097eeede645 | 11 | char counter = 0; |
| mariob | 0:8097eeede645 | 12 | |
| mariob | 0:8097eeede645 | 13 | void send() { |
| mariob | 0:8097eeede645 | 14 | printf("send()\r\n"); |
| mariob | 0:8097eeede645 | 15 | if(can1.write(CANMessage(1337, &counter, 1))) { |
| mariob | 0:8097eeede645 | 16 | printf("wloop()\r\n"); |
| mariob | 0:8097eeede645 | 17 | counter++; |
| mariob | 0:8097eeede645 | 18 | printf("Message sent: %d\r\n", counter); |
| mariob | 0:8097eeede645 | 19 | } |
| mariob | 0:8097eeede645 | 20 | led1 = !led1; |
| mariob | 0:8097eeede645 | 21 | } |
| mariob | 0:8097eeede645 | 22 | */ |
| mariob | 0:8097eeede645 | 23 | |
| mariob | 0:8097eeede645 | 24 | |
| mariob | 0:8097eeede645 | 25 | Ticker ticker; |
| mariob | 0:8097eeede645 | 26 | |
| mariob | 0:8097eeede645 | 27 | DigitalOut led_body(LED1); |
| mariob | 0:8097eeede645 | 28 | DigitalOut led_engine(LED2); |
| mariob | 0:8097eeede645 | 29 | DigitalOut led_time(LED3); |
| mariob | 0:8097eeede645 | 30 | |
| mariob | 0:8097eeede645 | 31 | CAN can(p9, p10); |
| mariob | 0:8097eeede645 | 32 | |
| mariob | 0:8097eeede645 | 33 | can_cmd_body_t can_cmd_body; |
| mariob | 0:8097eeede645 | 34 | |
| mariob | 0:8097eeede645 | 35 | int counter = 0; |
| mariob | 0:8097eeede645 | 36 | |
| mariob | 0:8097eeede645 | 37 | #define BODY_ 2 |
| mariob | 0:8097eeede645 | 38 | #define ENGINE_ 13 |
| mariob | 0:8097eeede645 | 39 | #define TIME_ 40 |
| mariob | 0:8097eeede645 | 40 | |
| mariob | 0:8097eeede645 | 41 | void send() { |
| mariob | 0:8097eeede645 | 42 | printf("send()\r\n"); |
| mariob | 0:8097eeede645 | 43 | |
| mariob | 0:8097eeede645 | 44 | static int body_n_sent = 0; |
| mariob | 0:8097eeede645 | 45 | |
| mariob | 0:8097eeede645 | 46 | counter++; |
| mariob | 0:8097eeede645 | 47 | |
| mariob | 0:8097eeede645 | 48 | if ((counter%BODY_)==0) { |
| mariob | 0:8097eeede645 | 49 | can_cmd_body.payload.msg.light_r = (body_n_sent&0x0001)==0x0001; |
| mariob | 0:8097eeede645 | 50 | can_cmd_body.payload.msg.light_l = (body_n_sent&0x0002)==0x0002; |
| mariob | 0:8097eeede645 | 51 | can_cmd_body.payload.msg.light_c = (body_n_sent&0x0004)==0x0004; |
| mariob | 0:8097eeede645 | 52 | if(can.write(CANMessage(CAN_CMD_BODY_ID, (char*)(can_cmd_body.payload.buf), 4))) |
| mariob | 0:8097eeede645 | 53 | printf("BODY OK\r\n"); |
| mariob | 0:8097eeede645 | 54 | else |
| mariob | 0:8097eeede645 | 55 | printf("BODY NOT OK\r\n"); |
| mariob | 0:8097eeede645 | 56 | led_body = !led_body; |
| mariob | 0:8097eeede645 | 57 | body_n_sent++; |
| mariob | 0:8097eeede645 | 58 | } |
| mariob | 0:8097eeede645 | 59 | |
| mariob | 0:8097eeede645 | 60 | } |
| mariob | 0:8097eeede645 | 61 | |
| mariob | 0:8097eeede645 | 62 | |
| mariob | 0:8097eeede645 | 63 | int main() { |
| mariob | 0:8097eeede645 | 64 | /* |
| mariob | 0:8097eeede645 | 65 | printf("main()\r\n"); |
| mariob | 0:8097eeede645 | 66 | ticker.attach(&send, 1); |
| mariob | 0:8097eeede645 | 67 | CANMessage msg; |
| mariob | 0:8097eeede645 | 68 | while(1) { |
| mariob | 0:8097eeede645 | 69 | printf("loop()\r\n"); |
| mariob | 0:8097eeede645 | 70 | if(can2.read(msg)) { |
| mariob | 0:8097eeede645 | 71 | printf("Message received: %d\r\n", msg.data[0]); |
| mariob | 0:8097eeede645 | 72 | led2 = !led2; |
| mariob | 0:8097eeede645 | 73 | } |
| mariob | 0:8097eeede645 | 74 | wait(0.2); |
| mariob | 0:8097eeede645 | 75 | } |
| mariob | 0:8097eeede645 | 76 | */ |
| mariob | 0:8097eeede645 | 77 | |
| mariob | 0:8097eeede645 | 78 | printf("main()\r\n"); |
| mariob | 0:8097eeede645 | 79 | ticker.attach(&send, 1); |
| mariob | 0:8097eeede645 | 80 | |
| mariob | 0:8097eeede645 | 81 | CANMessage msg; |
| mariob | 0:8097eeede645 | 82 | while(1) { |
| mariob | 0:8097eeede645 | 83 | if(can.read(msg)) { |
| mariob | 0:8097eeede645 | 84 | can_sts_body_payload_t x; |
| mariob | 0:8097eeede645 | 85 | x.buf[0] = msg.data[0]; x.buf[1] = msg.data[1]; x.buf[2] = msg.data[2]; x.buf[3] = msg.data[3]; |
| mariob | 0:8097eeede645 | 86 | x.buf[4] = msg.data[4]; x.buf[5] = msg.data[5]; x.buf[6] = msg.data[6]; x.buf[7] = msg.data[7]; |
| mariob | 0:8097eeede645 | 87 | printf("Message received: %d %d %d %d\r\n", x.buf[0], x.msg.eye_back_l, x.msg.eye_back_r, x.msg.eye_front); |
| mariob | 0:8097eeede645 | 88 | } |
| mariob | 0:8097eeede645 | 89 | wait(1.0); |
| mariob | 0:8097eeede645 | 90 | } |
| mariob | 0:8097eeede645 | 91 | } |