B+IMU+SD
Dependencies: BMI160 RTC SDFileSystem USBDevice max32630fthr
Fork of MPSMAXbutton by
main.cpp@0:769c5a7b3939, 2018-05-07 (annotated)
- 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?
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 | 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 | } |