B+IMU+SD
Dependencies: BMI160 RTC SDFileSystem USBDevice max32630fthr
Fork of MPSMAXbutton by
Diff: main.cpp
- Revision:
- 0:769c5a7b3939
- Child:
- 1:6b969a803e1b
- Child:
- 3:bd223559f79b
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon May 07 21:28:03 2018 +0000 @@ -0,0 +1,172 @@ +#include "mbed.h" +#include "max32630fthr.h" +#include "USBSerial.h" +#include "Default.h" +#include "DefaultRequired.h" + +#if (MBED_MAJOR_VERSION == 2) +#include "SDFileSystem.h" +#elif (MBED_MAJOR_VERSION == 5) +#include "SDBlockDevice.h" +#include "FATFileSystem.h" +#endif + +#include <stdlib.h> +#include "main.h" + +MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3); +Serial _serialport(USBTX,USBRX); +DigitalOut LED(P3_1); +DigitalOut Ctrl(P6_0); + +DigitalOut rLED(LED1); +DigitalOut gLED(LED2); +DigitalOut bLED(LED3); + + +#if (MBED_MAJOR_VERSION == 2) +SDFileSystem sd(D11, D12, D13, D10, "fs"); // do,di,clk,cs +#elif (MBED_MAJOR_VERSION == 5) +//SDBlockDevice sd(D11, D12, D13, D10, 8000000); +SDBlockDevice sd(SPI0_MOSI, SPI0_MISO, SPI0_SCK, SPI0_SS, 8000000); // For MAX32630FTHR +FATFileSystem fs("fs"); +#endif + +void Rx_interrupt(void); + +Default default_SM; +bool is_smactive; + +// main() runs in its own thread in the OS +// (note the calls to Thread::wait below for delays) +int main() +{ + _serialport.attach(&Rx_interrupt); + gLED = LED_ON; + rLED = LED_ON; + + _serialport.printf("in main\r\n"); + _serialport.printf("before init\r\n"); + +#if (MBED_MAJOR_VERSION == 5) + /* Init SD CARD reader */ + sd.init(); + fs.mount(&sd); +#endif + FILE* fp = fopen("/fs/somefile.txt", "a"); + if (fp != 0) + { + _serialport.printf("writing adasda\n\r\n"); + fprintf(fp,"writing asdasdasd\n\r\n"); + } else + { + _serialport.printf("ERROR\r\n"); + } + fclose(fp); + + + /* initialize state machine*/ + default_init(&default_SM); + default_enter(&default_SM); + is_smactive = false; + + while(1) + { + if(is_smactive == true) + { + // _serialport.printf("state active\n"); + is_smactive = false; + default_runCycle(&default_SM); + } + } +} + +/* Call back from Interrupt when Receiving Serial data*/ + +void Rx_interrupt(void) +{ + char keypress = '\0'; + keypress = _serialport.getc(); + /**Actions on received data*/ + switch(keypress) { + default: + break; + + case 'Q': + _serialport.printf("Q"); + defaultIface_raise_mode(&default_SM); + is_smactive = true; + break; + + case 'W': + _serialport.printf("W "); + defaultIface_raise_up(&default_SM); + is_smactive = true; + break; + + case 'E': + _serialport.printf("E "); + defaultIface_raise_down(&default_SM); + is_smactive = true; + break; + + case 'R': + _serialport.printf("R "); + defaultIface_raise_back(&default_SM); + is_smactive = true; + break; + + case 'T': + _serialport.printf("T "); + defaultIface_raise_home(&default_SM); + is_smactive = true; + break; + } + +} + +void PrintStatus_Serial(int val ) +{ + switch(val) + { + case 1: + _serialport.printf("Menu Selected\n"); + break; + + case 2: + _serialport.printf("function \n"); + break; + + case 3: + _serialport.printf("execute\n"); + break; + + case 4: + _serialport.printf("ready\n"); + break; + + case 5: + _serialport.printf("active\n"); + break; + + case 6: + _serialport.printf("alarm\n"); + break; + + case 7: + _serialport.printf("move down act\n"); + break; + + case 8: + _serialport.printf("move up act\n"); + break; + + case 9: + _serialport.printf("return\n"); + break; + + default: + break; + } + + }