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.
Dependencies: C12832 LM75B mbed
main.cpp
00001 #include "mbed.h" 00002 #include "LM75B.h" 00003 00004 LM75B tmp(p28, p27); 00005 00006 DigitalOut led1(LED1); 00007 DigitalOut led2(LED2); 00008 DigitalOut led3(LED3); 00009 DigitalOut led4(LED4); 00010 00011 InterruptIn sw1(p14); 00012 InterruptIn sw2(p15); 00013 00014 void flipper(void); 00015 void ON(void); 00016 void IDLE(void); 00017 void sw1Rise(void); 00018 void sw2Rise(void); 00019 void Time(void); 00020 void TimeOut(void); 00021 void Blink(void); 00022 void tempOut(void); 00023 void timeOutError(void); 00024 void errorBlink(void); 00025 void timeover(void); 00026 bool checker(void); 00027 bool checkerSW2(void); 00028 bool volatile sw2Pressed; 00029 bool volatile sw1Pressed; 00030 00031 Timeout removeTime; 00032 Timer gettime; 00033 Ticker tickerflipper; 00034 int counter; 00035 00036 enum Status{ST_IDLE=0, ST_ON, ST_TimeOut, ST_TempOut, ST_Error}; 00037 Status volatile status; 00038 00039 int main(void) 00040 { 00041 sw1.rise(&sw1Rise); 00042 sw2.rise(&sw2Rise); 00043 status = ST_IDLE; 00044 sw1Pressed = 0; 00045 sw2Pressed = 0; 00046 counter=0; 00047 led1=0, led2=0, led3=0, led4=0; 00048 00049 while(1) 00050 { 00051 switch(status) 00052 { 00053 case ST_IDLE:IDLE() ; break; 00054 case ST_ON:ON() ; break; 00055 case ST_TimeOut:TimeOut() ; break; 00056 case ST_TempOut:tempOut() ; break; 00057 case ST_Error:timeover() ; break; 00058 } 00059 } 00060 } 00061 00062 void timeover(void) 00063 { 00064 printf("Ende gut, Alles gut\n"); 00065 while(1) 00066 {} 00067 } 00068 00069 void errorBlink(void) 00070 { 00071 led4 = !led4; 00072 00073 } 00074 void timeOutError(void) 00075 { 00076 status = ST_Error; 00077 printf("Error TimeOut\n"); 00078 printf("Status: %i\n", status); 00079 } 00080 00081 void tempOut(void) 00082 { 00083 int countertmp = 0; 00084 00085 printf("void tempOut\n"); 00086 while(1) 00087 { 00088 printf("Temperatur: %f\n",tmp.read()); 00089 if(checkerSW2() == true) 00090 { 00091 status = ST_ON; 00092 return; 00093 } 00094 countertmp++; 00095 wait(1); 00096 } 00097 } 00098 00099 void flipper(void) 00100 { 00101 printf("void flipper\n"); 00102 led4 = !led4; 00103 if(counter == 3) 00104 { 00105 tickerflipper.detach(); 00106 counter=0; 00107 } 00108 else 00109 counter++; 00110 } 00111 00112 void TimeOut(void) 00113 { 00114 printf("void TimeOut\n"); 00115 int counterto = 0; 00116 while(1) 00117 { 00118 printf("TimeOut: %i\n", counterto); 00119 counterto++; 00120 wait(1); 00121 00122 if(checkerSW2() == true) 00123 { 00124 status = ST_TempOut; 00125 return; 00126 } 00127 } 00128 } 00129 00130 void Time(void) 00131 { 00132 printf("void Time\n"); 00133 if (gettime.read() ==0) 00134 { 00135 gettime.start(); 00136 } 00137 00138 else 00139 printf("Secunden: %f\n", gettime.read()); 00140 gettime.reset(); 00141 } 00142 00143 bool checker(void) 00144 { 00145 if(sw1Pressed == true) 00146 { 00147 printf("void checker\n"); 00148 Time(); 00149 sw1Pressed = false; 00150 return true; 00151 } 00152 return false; 00153 } 00154 00155 bool checkerSW2(void) 00156 { 00157 if(sw2Pressed == true) 00158 { 00159 printf("void checkerSW2\n"); 00160 sw2Pressed = false; 00161 return true; 00162 } 00163 return false; 00164 } 00165 00166 00167 void sw1Rise(void) 00168 { 00169 printf("sw1Rise\n"); 00170 00171 if(status == ST_ON || status == ST_IDLE) sw1Pressed = 1; 00172 wait_ms(200); 00173 } 00174 00175 void sw2Rise(void) 00176 { 00177 printf("void sw2Rise\n"); 00178 if(status == ST_ON || status == ST_TimeOut || status == ST_TempOut) sw2Pressed = 1; 00179 wait_ms(200); 00180 } 00181 00182 void ON(void) 00183 { 00184 printf("void ON\n"); 00185 tickerflipper.attach(&flipper, 0.5); 00186 removeTime.attach(&timeOutError, 10); 00187 led1 = true; 00188 00189 while(1) 00190 { 00191 if(status == ST_Error) 00192 { 00193 printf("IDLE verlassen\n"); 00194 tickerflipper.attach(&errorBlink, 0.3); 00195 led1=false; 00196 return; 00197 } 00198 if(checkerSW2() == true) 00199 { 00200 status = ST_TimeOut; 00201 removeTime.detach(); 00202 return; 00203 } 00204 if (checker() == true) 00205 { 00206 status = ST_IDLE; 00207 removeTime.detach(); 00208 led1=false; 00209 return; 00210 } 00211 } 00212 } 00213 00214 void IDLE(void) 00215 { 00216 printf("void IDLE\n"); 00217 removeTime.attach(&timeOutError, 10); 00218 while(1) 00219 { 00220 if(status == ST_Error) 00221 { 00222 printf("IDLE verlassen\n"); 00223 tickerflipper.attach(&errorBlink, 0.3); 00224 led1=false; 00225 return; 00226 } 00227 if (checker() == true) 00228 { 00229 status = ST_ON; 00230 removeTime.detach(); 00231 return; 00232 } 00233 00234 } 00235 }
Generated on Sat Jul 30 2022 14:09:07 by
1.7.2