B+IMU+SD

Dependencies:   BMI160 RTC SDFileSystem USBDevice max32630fthr

Fork of MPSMAXbutton by Faizan Ahmad

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "max32630fthr.h"
00003 #include "USBSerial.h"
00004 #include "Default.h"
00005 #include "DefaultRequired.h"
00006 #include  <stdlib.h>
00007 #include "main.h"
00008 #include "files.h"
00009 #include "IMU.h"
00010 #include "RTClock.h"
00011 
00012 MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3);
00013 Serial _serialport(USBTX,USBRX);
00014 DigitalOut LED(P3_1);
00015 DigitalOut Ctrl(P6_0);
00016 
00017 DigitalOut rLED(LED1);
00018 DigitalOut gLED(LED2);
00019 
00020 
00021 void Rx_interrupt(void);
00022 
00023 Default  default_SM;
00024 bool is_smactive;
00025 
00026 // main() runs in its own thread in the OS
00027 // (note the calls to Thread::wait below for delays)
00028 int main()
00029 {
00030     _serialport.attach(&Rx_interrupt);
00031     gLED = LED_ON;
00032     rLED = LED_ON;
00033 
00034 
00035 //    _serialport.printf("before init\r\n");
00036 
00037     if(initSDCard() == 0) {
00038         _serialport.printf("SD init OK!\n");
00039     }
00040 
00041     if(initIMU() == 0) {
00042         _serialport.printf("IMU init OK!\n");
00043     }
00044 
00045     //readFileNames();
00046     //initRTC();
00047 
00048     /* initialize state machine*/
00049     default_init(&default_SM);
00050     default_enter(&default_SM);
00051     is_smactive = false;
00052 
00053     while(1) {
00054         if(is_smactive == true) {
00055             // _serialport.printf("state active\n");
00056             is_smactive = false;
00057             default_runCycle(&default_SM);
00058         }
00059     }
00060 }
00061 
00062 /* Call back from Interrupt when Receiving Serial data*/
00063 
00064 void Rx_interrupt(void)
00065 {
00066     char keypress = '\0';
00067     keypress = _serialport.getc();
00068     /**Actions on received data*/
00069     switch(keypress) {
00070         default:
00071             break;
00072 
00073         case 'Q':
00074             // _serialport.printf("Q");
00075             defaultIface_raise_mode(&default_SM);
00076             is_smactive = true;
00077             break;
00078 
00079         case 'W':
00080             //_serialport.printf("W ");
00081             defaultIface_raise_up(&default_SM);
00082             is_smactive = true;
00083             break;
00084 
00085         case 'E':
00086             //_serialport.printf("E ");
00087             defaultIface_raise_down(&default_SM);
00088             is_smactive = true;
00089             break;
00090 
00091         case 'R':
00092             //_serialport.printf("R ");
00093             defaultIface_raise_back(&default_SM);
00094             is_smactive = true;
00095             break;
00096 
00097         case 'T':
00098             //_serialport.printf("T ");
00099             defaultIface_raise_home(&default_SM);
00100             is_smactive = true;
00101             break;
00102     }
00103 
00104 }
00105 
00106 void PrintStatus_Serial(int val )
00107 {
00108     switch(val) {
00109         case 1:
00110             _serialport.printf("Menu ");
00111             break;
00112 
00113         case 2:
00114             _serialport.printf("function ");
00115             break;
00116 
00117         case 3:
00118             _serialport.printf("execute ");
00119             break;
00120 
00121         case 4:
00122             _serialport.printf("ready\n");
00123             break;
00124 
00125         case 5:
00126             _serialport.printf("active\n");
00127             break;
00128 
00129         case 6:
00130             _serialport.printf("alarm\n");
00131             break;
00132 
00133         case 7:
00134             _serialport.printf("move down act\n");
00135             break;
00136 
00137         case 8:
00138             _serialport.printf("move up act\n");
00139             break;
00140 
00141         case 9:
00142             _serialport.printf("return\n");
00143             break;
00144 
00145         default:
00146             break;
00147     }
00148 
00149 }