button

Dependencies:   BMI160 SDFileSystem USBDevice max32630fthr

Fork of MPSMAX by Faizan Ahmad

Revision:
0:769c5a7b3939
Child:
1:6b969a803e1b
--- /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;
+    }
+
+    }