Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
00001 #define True 1 00002 #define False 0 00003 #include "mbed.h" 00004 #include "MODSERIAL.h" 00005 00006 00007 00008 MODSERIAL pc(USBTX,USBRX,512); 00009 Ticker tmer; 00010 DigitalOut rUSB(p14); 00011 00012 00013 float FirmVer=1.6; 00014 char buf[513]; 00015 volatile int sFlag=0; 00016 int Diagnostic=0; 00017 00018 00019 00020 struct tm t; 00021 time_t seconds; 00022 00023 int HoldOFF; 00024 00025 00026 void update_cfg(); 00027 void save_cfg(); 00028 void restore_cfg(); 00029 void ADCInit(); 00030 void DACInit(); 00031 void SerialInit(); 00032 void EEInit(); 00033 void RTCInit(); 00034 void ADCint(); 00035 void DACwr(int Ch, int Val); 00036 void parse(); 00037 00038 void PIDcalc(int eCh, int sCh, int Cntl); 00039 void SysInit(); 00040 00041 void rxCallback(MODSERIAL_IRQ_INFO *info); 00042 void flushSerialBuffer(void); 00043 extern "C" void HardFault_Handler() 00044 { 00045 pc.printf("Error Hard Fault!\n"); 00046 //NVIC_SystemReset(); 00047 } 00048 extern "C" void NMI_Handler() 00049 { 00050 pc.printf("Error NMI Fault!\n"); 00051 //NVIC_SystemReset(); 00052 } 00053 extern "C" void MemManage_Handler() 00054 { 00055 pc.printf("Error MemManage Fault!\n"); 00056 //NVIC_SystemReset(); 00057 } 00058 extern "C" void BusFault_Handler() 00059 { 00060 pc.printf("Error BusFault Fault!\n"); 00061 //NVIC_SystemReset(); 00062 } 00063 extern "C" void UsageFault_Handler() 00064 { 00065 pc.printf("Error UsageFault Fault!\n"); 00066 //NVIC_SystemReset(); 00067 } 00068 00069 int main() 00070 { 00071 rUSB=1; 00072 00073 FirmVer=1.6; //Firmware Version 00074 SerialInit(); 00075 SysInit(); 00076 RTCInit(); 00077 HoldOFF=0; 00078 flushSerialBuffer(); 00079 00080 while (1) { 00081 wait(.1); 00082 if (sFlag==1) { 00083 // NVIC_DisableIRQ(UART0_IRQn); //added to fix lockup 9-27-11 00084 int nNum = pc.move(buf,512); 00085 buf[nNum] = '\0'; 00086 pc.printf("\n\r%s\n\r",buf); 00087 parse(); 00088 sFlag=0; 00089 // NVIC_EnableIRQ(UART0_IRQn); //added to fix lockup 9-27-11 00090 } 00091 seconds = time(NULL); 00092 00093 00094 } 00095 } 00096 00097 void flushSerialBuffer(void) 00098 { 00099 char char1 = 0; 00100 while (pc.readable()) { 00101 char1 = pc.getc(); 00102 } 00103 return; 00104 } 00105 00106 void SysInit() 00107 { 00108 00109 } 00110 00111 void RTCInit() 00112 { 00113 00114 t.tm_sec = 00; // 0-59 00115 t.tm_min = 00; // 0-59 00116 t.tm_hour = 12; // 0-23 00117 t.tm_mday = 12; // 1-31 00118 t.tm_mon = 5; // 0-11 00119 t.tm_year = 109; // year since 1900 00120 seconds = mktime(&t); 00121 set_time(seconds); 00122 00123 } 00124 00125 00126 00127 00128 00129 void ADCint() 00130 { 00131 00132 if (Diagnostic==0) { 00133 PIDcalc(0, 1, 0); 00134 PIDcalc(2, 3, 1); 00135 } 00136 00137 } 00138 00139 void PIDcalc(int eCh, int sCh, int Cntl) 00140 { 00141 00142 } 00143 00144 00145 00146 void SerialInit() 00147 { 00148 pc.baud(115200); 00149 pc.autoDetectChar('\r'); 00150 pc.attach(&rxCallback, MODSERIAL::RxAutoDetect); 00151 00152 } 00153 00154 void rxCallback(MODSERIAL_IRQ_INFO *info) 00155 { 00156 sFlag=1; 00157 } 00158 00159 void parse() 00160 { 00161 00162 char *pos; 00163 char key[]="Tt"; 00164 pos=strpbrk(buf,key); 00165 if (pos) { 00166 //__NVIC_DisableIRQ(UART0_IRQn); 00167 // pc.printf("%c",0x0c); 00168 pc.printf("hello you pressed T\n\r"); 00169 //__NVIC_EnableIRQ(UART0_IRQn); 00170 } else { 00171 char key[]="Rr"; 00172 pos=strpbrk(buf,key); 00173 if (pos) { 00174 //__NVIC_DisableIRQ(UART0_IRQn); 00175 // pc.printf("%c",0x0c); 00176 pc.printf("hello you pressed R\n\r"); 00177 //__NVIC_EnableIRQ(UART0_IRQn); 00178 } else { 00179 char key[]="sS"; 00180 pos=strpbrk(buf,key); 00181 if (pos) { 00182 pc.printf("hello you pressed S\n\r"); 00183 } else { 00184 char key[]="pP"; 00185 pos=strpbrk(buf,key); 00186 if (pos) { 00187 pc.printf("hello you pressed P\n\r"); 00188 } else { 00189 char key[]="dD"; 00190 pos=strpbrk(buf,key); 00191 if (pos) { 00192 pc.printf("hello you pressed D\n\r"); 00193 } else { 00194 char key[]="iI"; 00195 pos=strpbrk(buf,key); 00196 if (pos) { 00197 pc.printf("hello you pressed I\n\r"); 00198 } else { 00199 char key[]="qQ"; 00200 pos=strpbrk(buf,key); 00201 if (pos) { 00202 pc.printf("hello you pressed q\n\r"); 00203 } else { 00204 //__NVIC_DisableIRQ(UART0_IRQn); 00205 pc.printf("\n\rErr. %s\n\r",buf); 00206 //__NVIC_EnableIRQ(UART0_IRQn); 00207 } 00208 } 00209 } 00210 } 00211 } 00212 } 00213 } 00214 }
Generated on Mon Jul 25 2022 06:03:47 by
1.7.2