My final year project
Dependencies: BSP_DISCO_F746NG F746_GUI LCD_DISCO_F746NG SDFileSystem TS_DISCO_F746NG ResistiveTouchController Map CYS8218Controller MedianFilter
main.cpp
- Committer:
- Generic
- Date:
- 2016-10-01
- Revision:
- 9:355a59fd962b
- Parent:
- 7:1a6e18b818a5
- Child:
- 12:650ae2f4c7df
File content as of revision 9:355a59fd962b:
#include "mbed.h" #include "Screens.hpp" void GUIThread(); void Init(); void ZeroPlate(); int currentScreen = 0; int nextScreen = 0; Thread guiThread; Screen *activeScreen = NULL; float zeroAlpha; float zeroBeta; bool saved; Serial pc(USBTX,USBRX); int main() { Init(); while(1) { switch (currentScreen) { case Screen::ZERO_PLATE_SCREEN : ZeroPlate(); break; } } } void GUIThread() { while(1) { if( nextScreen != currentScreen ) { pc.printf("%d\n\r",nextScreen); if( activeScreen != NULL) delete activeScreen; switch (nextScreen) { case Screen::MAIN_MENU_SCREEN : activeScreen = new MainMenuScreen(&nextScreen); break; case Screen::MAIN_SETTINGS_SCREEN : activeScreen = new MainSettingsScreen(&nextScreen); break; case Screen::ZERO_PLATE_SCREEN : activeScreen = new ZeroPlateScreen(&nextScreen, &zeroAlpha, &zeroBeta, &saved); break; } activeScreen->Draw(); currentScreen = nextScreen; Thread::wait(200); } activeScreen->Process(); Thread::wait(20); } } void Init() { pc.baud(57600); saved = false; nextScreen = Screen::MAIN_MENU_SCREEN; guiThread.start(GUIThread); } void ZeroPlate() { if( saved) { // TODO Save zero position on servos and fix screen not changing nextScreen = Screen::MAIN_SETTINGS_SCREEN; saved = false; } Thread::wait(20); }