car chassis

Dependencies:   Servo mbed-rtos mbed

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?

UserRevisionLine numberNew 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 }