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
- Committer:
- shimogamo
- Date:
- 2015-12-21
- Revision:
- 15:e73408fc6008
- Parent:
- 14:11e71bf840b2
- Child:
- 16:7e36177b4435
File content as of revision 15:e73408fc6008:
//@todo 時間のクラスの作成(Global中に) //@todo Initのコマンドモード化or別プログラム化 //@todo ソフトウェアシリアルの確認等 //@todo Cadence, Airspeed内でNC,Encorderクラスから継承 //@todo 使っているライブラリの関数の説明追加 //@todo Processing //タスクの数に上限があるっぽい?(6個以下) #include "mbed.h" #include "rtos.h" #include "Global.h" #include "Init.h" #include "ServoManager.h" #include "ControllerManager.h" #include "Trim.h" #include "Cadence.h" #include "Airspeed.h" #include "Ultsonic.h" #include "Atmpress.h" #include "Display.h" #include "XBee.h" RawSerial pc(USBTX, USBRX); Atmpress atmpress(p9, p10);//sda, scl Display display(p13, p14);//tx, rx ControllerManager controllerManager(p15,p16,p17,p18);//ele, rud, eletrimup, eletrimdown Ultsonic ultsonic(p20);//analogIn ServoManager servoManager(p21, p22);//ele, rud Cadence cadence(p23, p24, NC);//p11, p12では動作しない DigitalOut wdt(p26); XBee xbee(p28, p27);//tx, rx Airspeed airspeed(p29, NC, NC);//p19,p20をInterruptInに使ってはいけない void pc_rx(){ while(pc.readable()==1){ //コマンドモードのon,offはここに入れる char buf = (char)pc.getc(); Global::initqueue.put((char*)buf); } } void initializeTask(void const *pvParameters){ while(1){ Init::getSerial(); } } void controlTask(void const *pvParameters){ while(1){ //この中でpc.printfはしないほうがいいみたい(9600bpsだと遅延が起こる) controllerManager.update(); servoManager.update(); wdt = !wdt; Thread::wait(50); } } void sensorTask500(void const *pvParameters){ while(1){ airspeed.update(); cadence.update(); ultsonic.update(); atmpress.update(); Thread::wait(500); } } void displayTask(void const *pvParameters){ while(1){ display.update(); Thread::wait(50); } } void xbeeTask(void const *pvParameters){ while(1){ xbee.update(); Thread::wait(50); } } int main(void){ printf("start\n"); pc.attach(pc_rx,Serial::RxIrq); Global::initialize(); Thread InitializeTask(initializeTask); Thread ControlTask(controlTask, NULL, osPriorityRealtime); Thread SensorTask500(sensorTask500); Thread DisplayTask(displayTask); Thread XbeeTask(xbeeTask); printf("Task end\n"); Thread::wait(osWaitForever); }