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.
Dependencies: Servo mbed-rtos mbed
Diff: main.cpp
- Revision:
- 0:ce6055872f4e
- Child:
- 1:79b1ee0f97ef
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sun Aug 02 12:55:33 2015 +0000 @@ -0,0 +1,93 @@ +#include "mbed.h" +#include "car_config.hpp" +#include "rtos.h" + +int init(); + +int main() +{ + init(); + + while(1) {}; +} + +void init_led(); +void init_eeprom(); + +Thread *th_body; +Thread *th_can; + +void thread_body(void const *args); +void thread_can(void const *args); + +void init_threads () +{ + th_body = new Thread(thread_body); + th_can = new Thread(thread_can); +} +void init_body(); + +int init () +{ + + init_body(); + + printf("INIT LED\r\n"); + init_led(); + + printf("INIT EEPROM\r\n"); +// init_eeprom(); + + printf("INIT CAN\r\n"); + init_can(); + + + printf("INIT THREAD\r\n"); + init_threads(); + + + + return true; +} + + +/****************** EEPROM ******************/ + +eeprom_t eeprom(p7, p5, p6, p9, PAGENUMBER, PAGESIZE); + +t_eeprom_data eeprom_data[] = { + //SIZE, ADDR + { 2, 0}, //SOFTWARE VERSION + { 2, 2}, //DATA VERSION + { 4, 4}, //NUMBER OF STARTS + { 4, 20}, //T_MISSING + { 2, 22}, //MIN PWM ON + { 2, 24}, //MAX PWM ON + { 4, 40}, //ENGINE_LAST_MISSING + { 4, 44} //BODY_LAST_MISSING +}; + +void init_eeprom () +{ + eeprom.init(eeprom_data, sizeof(eeprom_data)/sizeof(t_eeprom_data)); + + uint16 sw = 0; + uint16 dd = 0; + uint32 num = 0; + if ((eeprom.read(EEPROM_DATA_SW_VERS, (uint8*)(&sw)) != 2) || + (eeprom.read(EEPROM_DATA_DD_VERS, (uint8*)(&dd)) != 2) || + (sw != SW_VERSION) || (dd != DD_VERSION)) + { + //error + eeprom.reset(); + sw = SW_VERSION; + eeprom.write(EEPROM_DATA_SW_VERS, (uint8*)(&sw)); + dd = DD_VERSION; + eeprom.write(EEPROM_DATA_DD_VERS, (uint8*)(&dd)); + } + + if (eeprom.read(EEPROM_DATA_NSTARTS, (uint8*)(&num)) != 4) + num = 0xffffffff; + num++; + eeprom.write(EEPROM_DATA_NSTARTS, (unsigned char*)(&num)); +}