button

Dependencies:   BMI160 SDFileSystem USBDevice max32630fthr

Committer:
FaizanAhmad
Date:
Tue May 08 13:45:42 2018 +0000
Revision:
2:5767f3f6909f
Parent:
1:6b969a803e1b
\button

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 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 }