car chassis
Dependencies: Servo mbed-rtos mbed
driver.cpp@1:79b1ee0f97ef, 2015-08-31 (annotated)
- Committer:
- mariob
- Date:
- Mon Aug 31 22:25:57 2015 +0000
- Revision:
- 1:79b1ee0f97ef
- Child:
- 2:7dfc8dd6aab3
first commit with the following features: CAN driver (it works), eeprom (it works but it is not used)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mariob | 1:79b1ee0f97ef | 1 | #include "car_config.hpp" |
mariob | 1:79b1ee0f97ef | 2 | #include "mbed.h" |
mariob | 1:79b1ee0f97ef | 3 | #include "rtos.h" |
mariob | 1:79b1ee0f97ef | 4 | |
mariob | 1:79b1ee0f97ef | 5 | extern can_cmd_driver_t can_cmd_driver; |
mariob | 1:79b1ee0f97ef | 6 | extern can_sts_driver_t can_sts_driver; |
mariob | 1:79b1ee0f97ef | 7 | |
mariob | 1:79b1ee0f97ef | 8 | void init_driver () |
mariob | 1:79b1ee0f97ef | 9 | { |
mariob | 1:79b1ee0f97ef | 10 | } |
mariob | 1:79b1ee0f97ef | 11 | |
mariob | 1:79b1ee0f97ef | 12 | |
mariob | 1:79b1ee0f97ef | 13 | void thread_driver (void const *args) |
mariob | 1:79b1ee0f97ef | 14 | { |
mariob | 1:79b1ee0f97ef | 15 | while(1) { |
mariob | 1:79b1ee0f97ef | 16 | //printf("DRIVER\r\n"); |
mariob | 1:79b1ee0f97ef | 17 | if (can_cmd_driver.flag == CAN_FLAG_RECEIVED) { |
mariob | 1:79b1ee0f97ef | 18 | uint16 cmd = can_cmd_driver.payload.msg.cmd; |
mariob | 1:79b1ee0f97ef | 19 | //uint16 opt = can_cmd_driver.payload.msg.opt; |
mariob | 1:79b1ee0f97ef | 20 | uint32 data = can_cmd_driver.payload.msg.data; |
mariob | 1:79b1ee0f97ef | 21 | switch(cmd) { |
mariob | 1:79b1ee0f97ef | 22 | case CMD_ECHO: |
mariob | 1:79b1ee0f97ef | 23 | can_sts_driver.payload.msg.data = data; |
mariob | 1:79b1ee0f97ef | 24 | can_sts_driver.flag = CAN_FLAG_SEND; |
mariob | 1:79b1ee0f97ef | 25 | printf("ECHO %d\r\n", can_cmd_driver.payload.msg.data); |
mariob | 1:79b1ee0f97ef | 26 | break; |
mariob | 1:79b1ee0f97ef | 27 | default: |
mariob | 1:79b1ee0f97ef | 28 | //ignore it |
mariob | 1:79b1ee0f97ef | 29 | break; |
mariob | 1:79b1ee0f97ef | 30 | } |
mariob | 1:79b1ee0f97ef | 31 | can_cmd_driver.flag = CAN_FLAG_EMPTY; |
mariob | 1:79b1ee0f97ef | 32 | } |
mariob | 1:79b1ee0f97ef | 33 | Thread::wait(DRIVER_THREAD_PERIOD); |
mariob | 1:79b1ee0f97ef | 34 | } |
mariob | 1:79b1ee0f97ef | 35 | } |