B+IMU+SD
Dependencies: BMI160 RTC SDFileSystem USBDevice max32630fthr
Fork of MPSMAXbutton by
main.cpp@3:bd223559f79b, 2018-05-09 (annotated)
- Committer:
- FaizanAhmad
- Date:
- Wed May 09 11:01:18 2018 +0000
- Revision:
- 3:bd223559f79b
- Parent:
- 0:769c5a7b3939
bUTTON+IMU+SD
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 | 3:bd223559f79b | 6 | #include <stdlib.h> |
FaizanAhmad | 0:769c5a7b3939 | 7 | #include "main.h" |
FaizanAhmad | 3:bd223559f79b | 8 | #include "files.h" |
FaizanAhmad | 3:bd223559f79b | 9 | #include "IMU.h" |
FaizanAhmad | 3:bd223559f79b | 10 | #include "RTClock.h" |
FaizanAhmad | 0:769c5a7b3939 | 11 | |
FaizanAhmad | 0:769c5a7b3939 | 12 | MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3); |
FaizanAhmad | 0:769c5a7b3939 | 13 | Serial _serialport(USBTX,USBRX); |
FaizanAhmad | 0:769c5a7b3939 | 14 | DigitalOut LED(P3_1); |
FaizanAhmad | 0:769c5a7b3939 | 15 | DigitalOut Ctrl(P6_0); |
FaizanAhmad | 0:769c5a7b3939 | 16 | |
FaizanAhmad | 0:769c5a7b3939 | 17 | DigitalOut rLED(LED1); |
FaizanAhmad | 0:769c5a7b3939 | 18 | DigitalOut gLED(LED2); |
FaizanAhmad | 0:769c5a7b3939 | 19 | |
FaizanAhmad | 0:769c5a7b3939 | 20 | |
FaizanAhmad | 0:769c5a7b3939 | 21 | void Rx_interrupt(void); |
FaizanAhmad | 0:769c5a7b3939 | 22 | |
FaizanAhmad | 0:769c5a7b3939 | 23 | Default default_SM; |
FaizanAhmad | 0:769c5a7b3939 | 24 | bool is_smactive; |
FaizanAhmad | 0:769c5a7b3939 | 25 | |
FaizanAhmad | 0:769c5a7b3939 | 26 | // main() runs in its own thread in the OS |
FaizanAhmad | 0:769c5a7b3939 | 27 | // (note the calls to Thread::wait below for delays) |
FaizanAhmad | 0:769c5a7b3939 | 28 | int main() |
FaizanAhmad | 0:769c5a7b3939 | 29 | { |
FaizanAhmad | 0:769c5a7b3939 | 30 | _serialport.attach(&Rx_interrupt); |
FaizanAhmad | 0:769c5a7b3939 | 31 | gLED = LED_ON; |
FaizanAhmad | 0:769c5a7b3939 | 32 | rLED = LED_ON; |
FaizanAhmad | 3:bd223559f79b | 33 | |
FaizanAhmad | 3:bd223559f79b | 34 | |
FaizanAhmad | 3:bd223559f79b | 35 | // _serialport.printf("before init\r\n"); |
FaizanAhmad | 3:bd223559f79b | 36 | |
FaizanAhmad | 3:bd223559f79b | 37 | if(initSDCard() == 0) { |
FaizanAhmad | 3:bd223559f79b | 38 | _serialport.printf("SD init OK!\n"); |
FaizanAhmad | 0:769c5a7b3939 | 39 | } |
FaizanAhmad | 3:bd223559f79b | 40 | |
FaizanAhmad | 3:bd223559f79b | 41 | if(initIMU() == 0) { |
FaizanAhmad | 3:bd223559f79b | 42 | _serialport.printf("IMU init OK!\n"); |
FaizanAhmad | 3:bd223559f79b | 43 | } |
FaizanAhmad | 3:bd223559f79b | 44 | |
FaizanAhmad | 3:bd223559f79b | 45 | //readFileNames(); |
FaizanAhmad | 3:bd223559f79b | 46 | //initRTC(); |
FaizanAhmad | 3:bd223559f79b | 47 | |
FaizanAhmad | 0:769c5a7b3939 | 48 | /* initialize state machine*/ |
FaizanAhmad | 0:769c5a7b3939 | 49 | default_init(&default_SM); |
FaizanAhmad | 0:769c5a7b3939 | 50 | default_enter(&default_SM); |
FaizanAhmad | 0:769c5a7b3939 | 51 | is_smactive = false; |
FaizanAhmad | 3:bd223559f79b | 52 | |
FaizanAhmad | 3:bd223559f79b | 53 | while(1) { |
FaizanAhmad | 3:bd223559f79b | 54 | if(is_smactive == true) { |
FaizanAhmad | 3:bd223559f79b | 55 | // _serialport.printf("state active\n"); |
FaizanAhmad | 0:769c5a7b3939 | 56 | is_smactive = false; |
FaizanAhmad | 3:bd223559f79b | 57 | default_runCycle(&default_SM); |
FaizanAhmad | 3:bd223559f79b | 58 | } |
FaizanAhmad | 0:769c5a7b3939 | 59 | } |
FaizanAhmad | 0:769c5a7b3939 | 60 | } |
FaizanAhmad | 0:769c5a7b3939 | 61 | |
FaizanAhmad | 0:769c5a7b3939 | 62 | /* Call back from Interrupt when Receiving Serial data*/ |
FaizanAhmad | 0:769c5a7b3939 | 63 | |
FaizanAhmad | 0:769c5a7b3939 | 64 | void Rx_interrupt(void) |
FaizanAhmad | 0:769c5a7b3939 | 65 | { |
FaizanAhmad | 0:769c5a7b3939 | 66 | char keypress = '\0'; |
FaizanAhmad | 0:769c5a7b3939 | 67 | keypress = _serialport.getc(); |
FaizanAhmad | 0:769c5a7b3939 | 68 | /**Actions on received data*/ |
FaizanAhmad | 0:769c5a7b3939 | 69 | switch(keypress) { |
FaizanAhmad | 0:769c5a7b3939 | 70 | default: |
FaizanAhmad | 0:769c5a7b3939 | 71 | break; |
FaizanAhmad | 0:769c5a7b3939 | 72 | |
FaizanAhmad | 0:769c5a7b3939 | 73 | case 'Q': |
FaizanAhmad | 3:bd223559f79b | 74 | // _serialport.printf("Q"); |
FaizanAhmad | 0:769c5a7b3939 | 75 | defaultIface_raise_mode(&default_SM); |
FaizanAhmad | 0:769c5a7b3939 | 76 | is_smactive = true; |
FaizanAhmad | 0:769c5a7b3939 | 77 | break; |
FaizanAhmad | 0:769c5a7b3939 | 78 | |
FaizanAhmad | 0:769c5a7b3939 | 79 | case 'W': |
FaizanAhmad | 3:bd223559f79b | 80 | //_serialport.printf("W "); |
FaizanAhmad | 0:769c5a7b3939 | 81 | defaultIface_raise_up(&default_SM); |
FaizanAhmad | 0:769c5a7b3939 | 82 | is_smactive = true; |
FaizanAhmad | 0:769c5a7b3939 | 83 | break; |
FaizanAhmad | 0:769c5a7b3939 | 84 | |
FaizanAhmad | 0:769c5a7b3939 | 85 | case 'E': |
FaizanAhmad | 3:bd223559f79b | 86 | //_serialport.printf("E "); |
FaizanAhmad | 0:769c5a7b3939 | 87 | defaultIface_raise_down(&default_SM); |
FaizanAhmad | 0:769c5a7b3939 | 88 | is_smactive = true; |
FaizanAhmad | 0:769c5a7b3939 | 89 | break; |
FaizanAhmad | 0:769c5a7b3939 | 90 | |
FaizanAhmad | 0:769c5a7b3939 | 91 | case 'R': |
FaizanAhmad | 3:bd223559f79b | 92 | //_serialport.printf("R "); |
FaizanAhmad | 0:769c5a7b3939 | 93 | defaultIface_raise_back(&default_SM); |
FaizanAhmad | 0:769c5a7b3939 | 94 | is_smactive = true; |
FaizanAhmad | 0:769c5a7b3939 | 95 | break; |
FaizanAhmad | 0:769c5a7b3939 | 96 | |
FaizanAhmad | 0:769c5a7b3939 | 97 | case 'T': |
FaizanAhmad | 3:bd223559f79b | 98 | //_serialport.printf("T "); |
FaizanAhmad | 0:769c5a7b3939 | 99 | defaultIface_raise_home(&default_SM); |
FaizanAhmad | 0:769c5a7b3939 | 100 | is_smactive = true; |
FaizanAhmad | 0:769c5a7b3939 | 101 | break; |
FaizanAhmad | 0:769c5a7b3939 | 102 | } |
FaizanAhmad | 0:769c5a7b3939 | 103 | |
FaizanAhmad | 0:769c5a7b3939 | 104 | } |
FaizanAhmad | 0:769c5a7b3939 | 105 | |
FaizanAhmad | 0:769c5a7b3939 | 106 | void PrintStatus_Serial(int val ) |
FaizanAhmad | 0:769c5a7b3939 | 107 | { |
FaizanAhmad | 3:bd223559f79b | 108 | switch(val) { |
FaizanAhmad | 0:769c5a7b3939 | 109 | case 1: |
FaizanAhmad | 3:bd223559f79b | 110 | _serialport.printf("Menu "); |
FaizanAhmad | 3:bd223559f79b | 111 | break; |
FaizanAhmad | 3:bd223559f79b | 112 | |
FaizanAhmad | 0:769c5a7b3939 | 113 | case 2: |
FaizanAhmad | 3:bd223559f79b | 114 | _serialport.printf("function "); |
FaizanAhmad | 3:bd223559f79b | 115 | break; |
FaizanAhmad | 3:bd223559f79b | 116 | |
FaizanAhmad | 0:769c5a7b3939 | 117 | case 3: |
FaizanAhmad | 3:bd223559f79b | 118 | _serialport.printf("execute "); |
FaizanAhmad | 3:bd223559f79b | 119 | break; |
FaizanAhmad | 3:bd223559f79b | 120 | |
FaizanAhmad | 0:769c5a7b3939 | 121 | case 4: |
FaizanAhmad | 3:bd223559f79b | 122 | _serialport.printf("ready\n"); |
FaizanAhmad | 3:bd223559f79b | 123 | break; |
FaizanAhmad | 3:bd223559f79b | 124 | |
FaizanAhmad | 0:769c5a7b3939 | 125 | case 5: |
FaizanAhmad | 3:bd223559f79b | 126 | _serialport.printf("active\n"); |
FaizanAhmad | 3:bd223559f79b | 127 | break; |
FaizanAhmad | 3:bd223559f79b | 128 | |
FaizanAhmad | 0:769c5a7b3939 | 129 | case 6: |
FaizanAhmad | 3:bd223559f79b | 130 | _serialport.printf("alarm\n"); |
FaizanAhmad | 3:bd223559f79b | 131 | break; |
FaizanAhmad | 3:bd223559f79b | 132 | |
FaizanAhmad | 3:bd223559f79b | 133 | case 7: |
FaizanAhmad | 3:bd223559f79b | 134 | _serialport.printf("move down act\n"); |
FaizanAhmad | 3:bd223559f79b | 135 | break; |
FaizanAhmad | 3:bd223559f79b | 136 | |
FaizanAhmad | 3:bd223559f79b | 137 | case 8: |
FaizanAhmad | 3:bd223559f79b | 138 | _serialport.printf("move up act\n"); |
FaizanAhmad | 3:bd223559f79b | 139 | break; |
FaizanAhmad | 3:bd223559f79b | 140 | |
FaizanAhmad | 0:769c5a7b3939 | 141 | case 9: |
FaizanAhmad | 3:bd223559f79b | 142 | _serialport.printf("return\n"); |
FaizanAhmad | 3:bd223559f79b | 143 | break; |
FaizanAhmad | 3:bd223559f79b | 144 | |
FaizanAhmad | 0:769c5a7b3939 | 145 | default: |
FaizanAhmad | 3:bd223559f79b | 146 | break; |
FaizanAhmad | 0:769c5a7b3939 | 147 | } |
FaizanAhmad | 0:769c5a7b3939 | 148 | |
FaizanAhmad | 3:bd223559f79b | 149 | } |