B+IMU+SD

Dependencies:   BMI160 RTC SDFileSystem USBDevice max32630fthr sd-driver

Fork of MPSMAXbutton by Faizan Ahmad

Committer:
FaizanAhmad
Date:
Mon May 07 21:28:03 2018 +0000
Revision:
0:769c5a7b3939
Child:
1:6b969a803e1b
Child:
3:bd223559f79b
button map

Who changed what in which revision?

UserRevisionLine numberNew contents of line
FaizanAhmad 0:769c5a7b3939 1 #include "mbed.h"
FaizanAhmad 0:769c5a7b3939 2 #include "max32630fthr.h"
FaizanAhmad 0:769c5a7b3939 3 #include "USBSerial.h"
FaizanAhmad 0:769c5a7b3939 4 #include "Default.h"
FaizanAhmad 0:769c5a7b3939 5 #include "DefaultRequired.h"
FaizanAhmad 0:769c5a7b3939 6
FaizanAhmad 0:769c5a7b3939 7 #if (MBED_MAJOR_VERSION == 2)
FaizanAhmad 0:769c5a7b3939 8 #include "SDFileSystem.h"
FaizanAhmad 0:769c5a7b3939 9 #elif (MBED_MAJOR_VERSION == 5)
FaizanAhmad 0:769c5a7b3939 10 #include "SDBlockDevice.h"
FaizanAhmad 0:769c5a7b3939 11 #include "FATFileSystem.h"
FaizanAhmad 0:769c5a7b3939 12 #endif
FaizanAhmad 0:769c5a7b3939 13
FaizanAhmad 0:769c5a7b3939 14 #include <stdlib.h>
FaizanAhmad 0:769c5a7b3939 15 #include "main.h"
FaizanAhmad 0:769c5a7b3939 16
FaizanAhmad 0:769c5a7b3939 17 MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3);
FaizanAhmad 0:769c5a7b3939 18 Serial _serialport(USBTX,USBRX);
FaizanAhmad 0:769c5a7b3939 19 DigitalOut LED(P3_1);
FaizanAhmad 0:769c5a7b3939 20 DigitalOut Ctrl(P6_0);
FaizanAhmad 0:769c5a7b3939 21
FaizanAhmad 0:769c5a7b3939 22 DigitalOut rLED(LED1);
FaizanAhmad 0:769c5a7b3939 23 DigitalOut gLED(LED2);
FaizanAhmad 0:769c5a7b3939 24 DigitalOut bLED(LED3);
FaizanAhmad 0:769c5a7b3939 25
FaizanAhmad 0:769c5a7b3939 26
FaizanAhmad 0:769c5a7b3939 27 #if (MBED_MAJOR_VERSION == 2)
FaizanAhmad 0:769c5a7b3939 28 SDFileSystem sd(D11, D12, D13, D10, "fs"); // do,di,clk,cs
FaizanAhmad 0:769c5a7b3939 29 #elif (MBED_MAJOR_VERSION == 5)
FaizanAhmad 0:769c5a7b3939 30 //SDBlockDevice sd(D11, D12, D13, D10, 8000000);
FaizanAhmad 0:769c5a7b3939 31 SDBlockDevice sd(SPI0_MOSI, SPI0_MISO, SPI0_SCK, SPI0_SS, 8000000); // For MAX32630FTHR
FaizanAhmad 0:769c5a7b3939 32 FATFileSystem fs("fs");
FaizanAhmad 0:769c5a7b3939 33 #endif
FaizanAhmad 0:769c5a7b3939 34
FaizanAhmad 0:769c5a7b3939 35 void Rx_interrupt(void);
FaizanAhmad 0:769c5a7b3939 36
FaizanAhmad 0:769c5a7b3939 37 Default default_SM;
FaizanAhmad 0:769c5a7b3939 38 bool is_smactive;
FaizanAhmad 0:769c5a7b3939 39
FaizanAhmad 0:769c5a7b3939 40 // main() runs in its own thread in the OS
FaizanAhmad 0:769c5a7b3939 41 // (note the calls to Thread::wait below for delays)
FaizanAhmad 0:769c5a7b3939 42 int main()
FaizanAhmad 0:769c5a7b3939 43 {
FaizanAhmad 0:769c5a7b3939 44 _serialport.attach(&Rx_interrupt);
FaizanAhmad 0:769c5a7b3939 45 gLED = LED_ON;
FaizanAhmad 0:769c5a7b3939 46 rLED = LED_ON;
FaizanAhmad 0:769c5a7b3939 47
FaizanAhmad 0:769c5a7b3939 48 _serialport.printf("in main\r\n");
FaizanAhmad 0:769c5a7b3939 49 _serialport.printf("before init\r\n");
FaizanAhmad 0:769c5a7b3939 50
FaizanAhmad 0:769c5a7b3939 51 #if (MBED_MAJOR_VERSION == 5)
FaizanAhmad 0:769c5a7b3939 52 /* Init SD CARD reader */
FaizanAhmad 0:769c5a7b3939 53 sd.init();
FaizanAhmad 0:769c5a7b3939 54 fs.mount(&sd);
FaizanAhmad 0:769c5a7b3939 55 #endif
FaizanAhmad 0:769c5a7b3939 56 FILE* fp = fopen("/fs/somefile.txt", "a");
FaizanAhmad 0:769c5a7b3939 57 if (fp != 0)
FaizanAhmad 0:769c5a7b3939 58 {
FaizanAhmad 0:769c5a7b3939 59 _serialport.printf("writing adasda\n\r\n");
FaizanAhmad 0:769c5a7b3939 60 fprintf(fp,"writing asdasdasd\n\r\n");
FaizanAhmad 0:769c5a7b3939 61 } else
FaizanAhmad 0:769c5a7b3939 62 {
FaizanAhmad 0:769c5a7b3939 63 _serialport.printf("ERROR\r\n");
FaizanAhmad 0:769c5a7b3939 64 }
FaizanAhmad 0:769c5a7b3939 65 fclose(fp);
FaizanAhmad 0:769c5a7b3939 66
FaizanAhmad 0:769c5a7b3939 67
FaizanAhmad 0:769c5a7b3939 68 /* initialize state machine*/
FaizanAhmad 0:769c5a7b3939 69 default_init(&default_SM);
FaizanAhmad 0:769c5a7b3939 70 default_enter(&default_SM);
FaizanAhmad 0:769c5a7b3939 71 is_smactive = false;
FaizanAhmad 0:769c5a7b3939 72
FaizanAhmad 0:769c5a7b3939 73 while(1)
FaizanAhmad 0:769c5a7b3939 74 {
FaizanAhmad 0:769c5a7b3939 75 if(is_smactive == true)
FaizanAhmad 0:769c5a7b3939 76 {
FaizanAhmad 0:769c5a7b3939 77 // _serialport.printf("state active\n");
FaizanAhmad 0:769c5a7b3939 78 is_smactive = false;
FaizanAhmad 0:769c5a7b3939 79 default_runCycle(&default_SM);
FaizanAhmad 0:769c5a7b3939 80 }
FaizanAhmad 0:769c5a7b3939 81 }
FaizanAhmad 0:769c5a7b3939 82 }
FaizanAhmad 0:769c5a7b3939 83
FaizanAhmad 0:769c5a7b3939 84 /* Call back from Interrupt when Receiving Serial data*/
FaizanAhmad 0:769c5a7b3939 85
FaizanAhmad 0:769c5a7b3939 86 void Rx_interrupt(void)
FaizanAhmad 0:769c5a7b3939 87 {
FaizanAhmad 0:769c5a7b3939 88 char keypress = '\0';
FaizanAhmad 0:769c5a7b3939 89 keypress = _serialport.getc();
FaizanAhmad 0:769c5a7b3939 90 /**Actions on received data*/
FaizanAhmad 0:769c5a7b3939 91 switch(keypress) {
FaizanAhmad 0:769c5a7b3939 92 default:
FaizanAhmad 0:769c5a7b3939 93 break;
FaizanAhmad 0:769c5a7b3939 94
FaizanAhmad 0:769c5a7b3939 95 case 'Q':
FaizanAhmad 0:769c5a7b3939 96 _serialport.printf("Q");
FaizanAhmad 0:769c5a7b3939 97 defaultIface_raise_mode(&default_SM);
FaizanAhmad 0:769c5a7b3939 98 is_smactive = true;
FaizanAhmad 0:769c5a7b3939 99 break;
FaizanAhmad 0:769c5a7b3939 100
FaizanAhmad 0:769c5a7b3939 101 case 'W':
FaizanAhmad 0:769c5a7b3939 102 _serialport.printf("W ");
FaizanAhmad 0:769c5a7b3939 103 defaultIface_raise_up(&default_SM);
FaizanAhmad 0:769c5a7b3939 104 is_smactive = true;
FaizanAhmad 0:769c5a7b3939 105 break;
FaizanAhmad 0:769c5a7b3939 106
FaizanAhmad 0:769c5a7b3939 107 case 'E':
FaizanAhmad 0:769c5a7b3939 108 _serialport.printf("E ");
FaizanAhmad 0:769c5a7b3939 109 defaultIface_raise_down(&default_SM);
FaizanAhmad 0:769c5a7b3939 110 is_smactive = true;
FaizanAhmad 0:769c5a7b3939 111 break;
FaizanAhmad 0:769c5a7b3939 112
FaizanAhmad 0:769c5a7b3939 113 case 'R':
FaizanAhmad 0:769c5a7b3939 114 _serialport.printf("R ");
FaizanAhmad 0:769c5a7b3939 115 defaultIface_raise_back(&default_SM);
FaizanAhmad 0:769c5a7b3939 116 is_smactive = true;
FaizanAhmad 0:769c5a7b3939 117 break;
FaizanAhmad 0:769c5a7b3939 118
FaizanAhmad 0:769c5a7b3939 119 case 'T':
FaizanAhmad 0:769c5a7b3939 120 _serialport.printf("T ");
FaizanAhmad 0:769c5a7b3939 121 defaultIface_raise_home(&default_SM);
FaizanAhmad 0:769c5a7b3939 122 is_smactive = true;
FaizanAhmad 0:769c5a7b3939 123 break;
FaizanAhmad 0:769c5a7b3939 124 }
FaizanAhmad 0:769c5a7b3939 125
FaizanAhmad 0:769c5a7b3939 126 }
FaizanAhmad 0:769c5a7b3939 127
FaizanAhmad 0:769c5a7b3939 128 void PrintStatus_Serial(int val )
FaizanAhmad 0:769c5a7b3939 129 {
FaizanAhmad 0:769c5a7b3939 130 switch(val)
FaizanAhmad 0:769c5a7b3939 131 {
FaizanAhmad 0:769c5a7b3939 132 case 1:
FaizanAhmad 0:769c5a7b3939 133 _serialport.printf("Menu Selected\n");
FaizanAhmad 0:769c5a7b3939 134 break;
FaizanAhmad 0:769c5a7b3939 135
FaizanAhmad 0:769c5a7b3939 136 case 2:
FaizanAhmad 0:769c5a7b3939 137 _serialport.printf("function \n");
FaizanAhmad 0:769c5a7b3939 138 break;
FaizanAhmad 0:769c5a7b3939 139
FaizanAhmad 0:769c5a7b3939 140 case 3:
FaizanAhmad 0:769c5a7b3939 141 _serialport.printf("execute\n");
FaizanAhmad 0:769c5a7b3939 142 break;
FaizanAhmad 0:769c5a7b3939 143
FaizanAhmad 0:769c5a7b3939 144 case 4:
FaizanAhmad 0:769c5a7b3939 145 _serialport.printf("ready\n");
FaizanAhmad 0:769c5a7b3939 146 break;
FaizanAhmad 0:769c5a7b3939 147
FaizanAhmad 0:769c5a7b3939 148 case 5:
FaizanAhmad 0:769c5a7b3939 149 _serialport.printf("active\n");
FaizanAhmad 0:769c5a7b3939 150 break;
FaizanAhmad 0:769c5a7b3939 151
FaizanAhmad 0:769c5a7b3939 152 case 6:
FaizanAhmad 0:769c5a7b3939 153 _serialport.printf("alarm\n");
FaizanAhmad 0:769c5a7b3939 154 break;
FaizanAhmad 0:769c5a7b3939 155
FaizanAhmad 0:769c5a7b3939 156 case 7:
FaizanAhmad 0:769c5a7b3939 157 _serialport.printf("move down act\n");
FaizanAhmad 0:769c5a7b3939 158 break;
FaizanAhmad 0:769c5a7b3939 159
FaizanAhmad 0:769c5a7b3939 160 case 8:
FaizanAhmad 0:769c5a7b3939 161 _serialport.printf("move up act\n");
FaizanAhmad 0:769c5a7b3939 162 break;
FaizanAhmad 0:769c5a7b3939 163
FaizanAhmad 0:769c5a7b3939 164 case 9:
FaizanAhmad 0:769c5a7b3939 165 _serialport.printf("return\n");
FaizanAhmad 0:769c5a7b3939 166 break;
FaizanAhmad 0:769c5a7b3939 167
FaizanAhmad 0:769c5a7b3939 168 default:
FaizanAhmad 0:769c5a7b3939 169 break;
FaizanAhmad 0:769c5a7b3939 170 }
FaizanAhmad 0:769c5a7b3939 171
FaizanAhmad 0:769c5a7b3939 172 }