B+IMU+SD
Dependencies: BMI160 RTC SDFileSystem USBDevice max32630fthr
Fork of MPSMAXbutton by
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 }
Generated on Tue Jul 12 2022 19:03:03 by 1.7.2