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