zavrsni ricci

Dependencies:   mbed

Committer:
marcoricci
Date:
Fri Nov 09 16:29:02 2018 +0000
Revision:
0:427833cc260e
final

Who changed what in which revision?

UserRevisionLine numberNew contents of line
marcoricci 0:427833cc260e 1 //Reads input through the ADC, and transfers to PC terminal
marcoricci 0:427833cc260e 2 #include "mbed.h"
marcoricci 0:427833cc260e 3 #include "types.h"
marcoricci 0:427833cc260e 4 #include "memoria.h"
marcoricci 0:427833cc260e 5 #include "Keyb2.h"
marcoricci 0:427833cc260e 6
marcoricci 0:427833cc260e 7 // * -------------------------------------------- *
marcoricci 0:427833cc260e 8 // * assign HW *
marcoricci 0:427833cc260e 9 // * -------------------------------------------- *
marcoricci 0:427833cc260e 10 BusOut Seg1( p5, p6, p7, p8, p9,p10,p11); // ABCDEFG
marcoricci 0:427833cc260e 11 BusOut Seg2(p12,p13,p14,p15,p16,p17,p18); // ABCDEFG
marcoricci 0:427833cc260e 12 BusOut Seg3(p24,p25,p26,p27,p28,p29,p30); // ABCDEFG
marcoricci 0:427833cc260e 13 DigitalOut DG (p19); // segment A
marcoricci 0:427833cc260e 14 PwmOut buzzer(p21);
marcoricci 0:427833cc260e 15 DigitalOut led1(LED1); // digital out to p5
marcoricci 0:427833cc260e 16 DigitalOut led2(LED2); // digital out to p5
marcoricci 0:427833cc260e 17 DigitalOut led3(LED3); // digital out to p5
marcoricci 0:427833cc260e 18 DigitalOut led4(LED4); // digital out to p5
marcoricci 0:427833cc260e 19 InterruptIn buttonSEL(p22); // Interrupt on digital pushbutton
marcoricci 0:427833cc260e 20 InterruptIn buttonOK(p23); // Interrupt on digital pushbutton
marcoricci 0:427833cc260e 21 Timer debounceSEL; // define debounce timer
marcoricci 0:427833cc260e 22 Timer debounceOK; // define debounce timer
marcoricci 0:427833cc260e 23 Timer TimVis; // time to visual
marcoricci 0:427833cc260e 24 Timer StartUP; // counter up
marcoricci 0:427833cc260e 25 Timer StartDW; // counter DW
marcoricci 0:427833cc260e 26 AnalogIn Ain(p20);
marcoricci 0:427833cc260e 27
marcoricci 0:427833cc260e 28 // * -------------------------------------------- *
marcoricci 0:427833cc260e 29 // * declare prototypes *
marcoricci 0:427833cc260e 30 // * -------------------------------------------- *
marcoricci 0:427833cc260e 31 void Voltmetro (void);
marcoricci 0:427833cc260e 32 void CounterUP (void);
marcoricci 0:427833cc260e 33 void CounterDW (void);
marcoricci 0:427833cc260e 34 void Visual7(int counter);
marcoricci 0:427833cc260e 35 int SetCounterDW (int countrDW);
marcoricci 0:427833cc260e 36 void CounterDWend(void);
marcoricci 0:427833cc260e 37 void Menu1(void);
marcoricci 0:427833cc260e 38 void Menu2(void);
marcoricci 0:427833cc260e 39 void Menu3(void);
marcoricci 0:427833cc260e 40 void BuzzerSEL (void);
marcoricci 0:427833cc260e 41 void BuzzerOK (void);
marcoricci 0:427833cc260e 42
marcoricci 0:427833cc260e 43
marcoricci 0:427833cc260e 44
marcoricci 0:427833cc260e 45 int main()
marcoricci 0:427833cc260e 46 {
marcoricci 0:427833cc260e 47
marcoricci 0:427833cc260e 48 // * -------------------------------------------- *
marcoricci 0:427833cc260e 49 // * init HW *
marcoricci 0:427833cc260e 50 // * -------------------------------------------- *
marcoricci 0:427833cc260e 51 debounceOK.start();
marcoricci 0:427833cc260e 52 buttonOK.rise(&KeybOk); // attach the address of the toggle
marcoricci 0:427833cc260e 53 buttonOK.mode(PullUp);
marcoricci 0:427833cc260e 54 debounceSEL.start();
marcoricci 0:427833cc260e 55 buttonSEL.rise(&KeybSEL); // attach the address of the toggle
marcoricci 0:427833cc260e 56 buttonSEL.mode(PullUp);
marcoricci 0:427833cc260e 57 TimVis.start();
marcoricci 0:427833cc260e 58 StartUP.start();
marcoricci 0:427833cc260e 59 StartDW.start();
marcoricci 0:427833cc260e 60 ExKeyPress = KEYNULL;
marcoricci 0:427833cc260e 61 KeyPress = KEYNULL;
marcoricci 0:427833cc260e 62 Level = LEVEL1;
marcoricci 0:427833cc260e 63 stateMbd = ST_INIT;
marcoricci 0:427833cc260e 64
marcoricci 0:427833cc260e 65 do
marcoricci 0:427833cc260e 66 { // infinite loop
marcoricci 0:427833cc260e 67
marcoricci 0:427833cc260e 68 // * -------------------------------------------- *
marcoricci 0:427833cc260e 69 // * state mbed *
marcoricci 0:427833cc260e 70 // * -------------------------------------------- *
marcoricci 0:427833cc260e 71 if (TimVis.read_ms() >= 200)
marcoricci 0:427833cc260e 72 {
marcoricci 0:427833cc260e 73 TimVis.reset(); // restart timer
marcoricci 0:427833cc260e 74
marcoricci 0:427833cc260e 75 switch (stateMbd) {
marcoricci 0:427833cc260e 76 case ST_INIT:
marcoricci 0:427833cc260e 77 stateMbd = ST_M1;
marcoricci 0:427833cc260e 78 break;
marcoricci 0:427833cc260e 79 case ST_M1:
marcoricci 0:427833cc260e 80 Menu1();
marcoricci 0:427833cc260e 81 break;
marcoricci 0:427833cc260e 82 case ST_M2:
marcoricci 0:427833cc260e 83 Menu2();
marcoricci 0:427833cc260e 84 break;
marcoricci 0:427833cc260e 85 case ST_M3:
marcoricci 0:427833cc260e 86 Menu3();
marcoricci 0:427833cc260e 87 break;
marcoricci 0:427833cc260e 88 }
marcoricci 0:427833cc260e 89 }
marcoricci 0:427833cc260e 90
marcoricci 0:427833cc260e 91 // * -------------------------------------------- *
marcoricci 0:427833cc260e 92 // * read keyboard --> move to state machine *
marcoricci 0:427833cc260e 93 // * -------------------------------------------- *
marcoricci 0:427833cc260e 94 if (Keyboard() != KEYNULL) {
marcoricci 0:427833cc260e 95
marcoricci 0:427833cc260e 96 switch (KeyPress) {
marcoricci 0:427833cc260e 97 case KEYSEL:
marcoricci 0:427833cc260e 98 if (Level == LEVEL1) {
marcoricci 0:427833cc260e 99 if (stateMbd < (ST_MMAX-1)) stateMbd++;
marcoricci 0:427833cc260e 100 else stateMbd = (ST_INIT+1);
marcoricci 0:427833cc260e 101 }
marcoricci 0:427833cc260e 102 break;
marcoricci 0:427833cc260e 103 case KEYOK:
marcoricci 0:427833cc260e 104 if (Level < LEVEL6) Level++; else Level = LEVEL1;
marcoricci 0:427833cc260e 105 break;
marcoricci 0:427833cc260e 106 }
marcoricci 0:427833cc260e 107 }
marcoricci 0:427833cc260e 108 }
marcoricci 0:427833cc260e 109 while (1);
marcoricci 0:427833cc260e 110
marcoricci 0:427833cc260e 111 }
marcoricci 0:427833cc260e 112
marcoricci 0:427833cc260e 113
marcoricci 0:427833cc260e 114
marcoricci 0:427833cc260e 115 // * --------------------------------------------------- *
marcoricci 0:427833cc260e 116 // * Menu *
marcoricci 0:427833cc260e 117 // * --------------------------------------------------- *
marcoricci 0:427833cc260e 118 void Menu1(void)
marcoricci 0:427833cc260e 119 {
marcoricci 0:427833cc260e 120 switch (Level) {
marcoricci 0:427833cc260e 121 case LEVEL1:
marcoricci 0:427833cc260e 122 Seg1 = tabFunc[0U];
marcoricci 0:427833cc260e 123 DG = 0u;
marcoricci 0:427833cc260e 124 Seg2 = tabSeg[0U];
marcoricci 0:427833cc260e 125 Seg3 = tabSeg[1U];
marcoricci 0:427833cc260e 126 break;
marcoricci 0:427833cc260e 127 case LEVEL2:
marcoricci 0:427833cc260e 128 Voltmetro();
marcoricci 0:427833cc260e 129 break;
marcoricci 0:427833cc260e 130 case LEVEL3:
marcoricci 0:427833cc260e 131 Level = LEVEL1;
marcoricci 0:427833cc260e 132 break;
marcoricci 0:427833cc260e 133 }
marcoricci 0:427833cc260e 134 }
marcoricci 0:427833cc260e 135
marcoricci 0:427833cc260e 136 void Menu2(void)
marcoricci 0:427833cc260e 137 {
marcoricci 0:427833cc260e 138 switch (Level) {
marcoricci 0:427833cc260e 139 case LEVEL1:
marcoricci 0:427833cc260e 140 Seg1 = tabFunc[0U];
marcoricci 0:427833cc260e 141 DG = 0u;
marcoricci 0:427833cc260e 142 Seg2 = tabSeg[0U];
marcoricci 0:427833cc260e 143 Seg3 = tabSeg[2U];
marcoricci 0:427833cc260e 144 break;
marcoricci 0:427833cc260e 145 case LEVEL2:
marcoricci 0:427833cc260e 146 DG = 0u;
marcoricci 0:427833cc260e 147 Seg1 = tabFunc[1U];
marcoricci 0:427833cc260e 148 Seg2 = tabFunc[2U];
marcoricci 0:427833cc260e 149 Seg3 = tabFunc[3U];
marcoricci 0:427833cc260e 150 break;
marcoricci 0:427833cc260e 151 case LEVEL3:
marcoricci 0:427833cc260e 152 StartUP.reset();
marcoricci 0:427833cc260e 153 CntUp = 0U;
marcoricci 0:427833cc260e 154 Level = LEVEL4;
marcoricci 0:427833cc260e 155 break;
marcoricci 0:427833cc260e 156 case LEVEL4:
marcoricci 0:427833cc260e 157 CounterUP();
marcoricci 0:427833cc260e 158 break;
marcoricci 0:427833cc260e 159 case LEVEL5:
marcoricci 0:427833cc260e 160 break;
marcoricci 0:427833cc260e 161 case LEVEL6:
marcoricci 0:427833cc260e 162 StartUP.reset();
marcoricci 0:427833cc260e 163 Level = LEVEL1;
marcoricci 0:427833cc260e 164 break;
marcoricci 0:427833cc260e 165 }
marcoricci 0:427833cc260e 166 }
marcoricci 0:427833cc260e 167
marcoricci 0:427833cc260e 168 void Menu3(void)
marcoricci 0:427833cc260e 169 {
marcoricci 0:427833cc260e 170 switch (Level) {
marcoricci 0:427833cc260e 171 case LEVEL1:
marcoricci 0:427833cc260e 172 Seg1 = tabFunc[0U];
marcoricci 0:427833cc260e 173 DG = 0u;
marcoricci 0:427833cc260e 174 Seg2 = tabSeg[0U];
marcoricci 0:427833cc260e 175 Seg3 = tabSeg[3U];
marcoricci 0:427833cc260e 176 break;
marcoricci 0:427833cc260e 177 case LEVEL2:
marcoricci 0:427833cc260e 178 DG = 0u;
marcoricci 0:427833cc260e 179 Seg1 = tabFunc[1U];
marcoricci 0:427833cc260e 180 Seg2 = tabFunc[4U];
marcoricci 0:427833cc260e 181 Seg3 = tabFunc[5U];
marcoricci 0:427833cc260e 182 break;
marcoricci 0:427833cc260e 183 case LEVEL3:
marcoricci 0:427833cc260e 184 StartDW.reset();
marcoricci 0:427833cc260e 185 CntDw = 15U;
marcoricci 0:427833cc260e 186 CntDw = SetCounterDW(CntDw);
marcoricci 0:427833cc260e 187 break;
marcoricci 0:427833cc260e 188 case LEVEL4:
marcoricci 0:427833cc260e 189 CounterDW();
marcoricci 0:427833cc260e 190 break;
marcoricci 0:427833cc260e 191 case LEVEL5:
marcoricci 0:427833cc260e 192 break;
marcoricci 0:427833cc260e 193 case LEVEL6:
marcoricci 0:427833cc260e 194 StartDW.reset();
marcoricci 0:427833cc260e 195 Level = LEVEL1;
marcoricci 0:427833cc260e 196 break;
marcoricci 0:427833cc260e 197 }
marcoricci 0:427833cc260e 198 }
marcoricci 0:427833cc260e 199
marcoricci 0:427833cc260e 200
marcoricci 0:427833cc260e 201 // * --------------------------------------------------- *
marcoricci 0:427833cc260e 202 // * Keyboard *
marcoricci 0:427833cc260e 203 // * --------------------------------------------------- *
marcoricci 0:427833cc260e 204 // routine interrutpt
marcoricci 0:427833cc260e 205 void KeybOk() {
marcoricci 0:427833cc260e 206 if (debounceOK.read_ms()>200) // only allow toggle if debounce timer
marcoricci 0:427833cc260e 207 {
marcoricci 0:427833cc260e 208 bitFlag.keyB = 1;
marcoricci 0:427833cc260e 209 bitFlag.keyOk = 1;
marcoricci 0:427833cc260e 210 }
marcoricci 0:427833cc260e 211 debounceOK.reset(); // restart timer when the toggle is performed
marcoricci 0:427833cc260e 212 BuzzerOK();
marcoricci 0:427833cc260e 213 }
marcoricci 0:427833cc260e 214
marcoricci 0:427833cc260e 215 // routine interrutpt
marcoricci 0:427833cc260e 216 void KeybSEL() {
marcoricci 0:427833cc260e 217 if (debounceSEL.read_ms()>200)
marcoricci 0:427833cc260e 218 {
marcoricci 0:427833cc260e 219 bitFlag.keyB = 1;
marcoricci 0:427833cc260e 220 bitFlag.keySel = 1;
marcoricci 0:427833cc260e 221 }
marcoricci 0:427833cc260e 222 debounceSEL.reset(); // restart timer when the toggle is performed
marcoricci 0:427833cc260e 223 BuzzerSEL();
marcoricci 0:427833cc260e 224 }
marcoricci 0:427833cc260e 225
marcoricci 0:427833cc260e 226 char Keyboard(void)
marcoricci 0:427833cc260e 227 {
marcoricci 0:427833cc260e 228 if (bitFlag.keyB == 0) return (KEYNULL);
marcoricci 0:427833cc260e 229 if (bitFlag.keyOk)
marcoricci 0:427833cc260e 230 {
marcoricci 0:427833cc260e 231 KeyPress = KEYOK;
marcoricci 0:427833cc260e 232 bitFlag.keyOk = 0;
marcoricci 0:427833cc260e 233 }
marcoricci 0:427833cc260e 234 if (bitFlag.keySel)
marcoricci 0:427833cc260e 235 {
marcoricci 0:427833cc260e 236 KeyPress = KEYSEL;
marcoricci 0:427833cc260e 237 bitFlag.keySel = 0;
marcoricci 0:427833cc260e 238 }
marcoricci 0:427833cc260e 239 bitFlag.keyB = 0;
marcoricci 0:427833cc260e 240 return (KeyPress);
marcoricci 0:427833cc260e 241 }
marcoricci 0:427833cc260e 242
marcoricci 0:427833cc260e 243 // * --------------------------------------------------- *
marcoricci 0:427833cc260e 244 // * DC measure *
marcoricci 0:427833cc260e 245 // * --------------------------------------------------- *
marcoricci 0:427833cc260e 246 void Voltmetro (void)
marcoricci 0:427833cc260e 247 {
marcoricci 0:427833cc260e 248 unsigned short unit,dec,cent;
marcoricci 0:427833cc260e 249 float tmpADCdata;
marcoricci 0:427833cc260e 250
marcoricci 0:427833cc260e 251 // lettura adc
marcoricci 0:427833cc260e 252 ADCdata = Ain * 3.3;
marcoricci 0:427833cc260e 253
marcoricci 0:427833cc260e 254 //unita
marcoricci 0:427833cc260e 255 unit = (unsigned short)ADCdata;
marcoricci 0:427833cc260e 256 Seg1 = tabSeg[unit];
marcoricci 0:427833cc260e 257 DG = 0u;
marcoricci 0:427833cc260e 258
marcoricci 0:427833cc260e 259 //decine
marcoricci 0:427833cc260e 260 tmpADCdata = ADCdata - (unsigned short)ADCdata;
marcoricci 0:427833cc260e 261 dec = (unsigned short)(tmpADCdata * 10U);
marcoricci 0:427833cc260e 262 Seg2 = tabSeg[dec];
marcoricci 0:427833cc260e 263
marcoricci 0:427833cc260e 264 //centinaia
marcoricci 0:427833cc260e 265 tmpADCdata = ADCdata - (unsigned short)ADCdata;
marcoricci 0:427833cc260e 266 tmpADCdata = tmpADCdata * 10U;
marcoricci 0:427833cc260e 267 tmpADCdata = tmpADCdata - (unsigned short)tmpADCdata;
marcoricci 0:427833cc260e 268 cent = (unsigned short)(tmpADCdata * 10U);
marcoricci 0:427833cc260e 269 Seg3 = tabSeg[cent];
marcoricci 0:427833cc260e 270 }
marcoricci 0:427833cc260e 271
marcoricci 0:427833cc260e 272 // * --------------------------------------------------- *
marcoricci 0:427833cc260e 273 // * Counters *
marcoricci 0:427833cc260e 274 // * --------------------------------------------------- *
marcoricci 0:427833cc260e 275 void CounterUP (void)
marcoricci 0:427833cc260e 276 {
marcoricci 0:427833cc260e 277
marcoricci 0:427833cc260e 278 if (StartUP.read_ms()>= 1000)
marcoricci 0:427833cc260e 279 {
marcoricci 0:427833cc260e 280 if (CntUp < 999)
marcoricci 0:427833cc260e 281 {
marcoricci 0:427833cc260e 282 CntUp++;
marcoricci 0:427833cc260e 283 buzzer.period(1./4000.); // set PWM period
marcoricci 0:427833cc260e 284 buzzer=0.5; // set duty cycle
marcoricci 0:427833cc260e 285 wait(0.05);
marcoricci 0:427833cc260e 286 buzzer.period(1./0.); // set PWM period
marcoricci 0:427833cc260e 287 }
marcoricci 0:427833cc260e 288 else
marcoricci 0:427833cc260e 289 {
marcoricci 0:427833cc260e 290 CntUp = 0;
marcoricci 0:427833cc260e 291 }
marcoricci 0:427833cc260e 292 StartUP.reset();
marcoricci 0:427833cc260e 293 }
marcoricci 0:427833cc260e 294 Visual7(CntUp);
marcoricci 0:427833cc260e 295 }
marcoricci 0:427833cc260e 296
marcoricci 0:427833cc260e 297 void CounterDW (void)
marcoricci 0:427833cc260e 298 {
marcoricci 0:427833cc260e 299
marcoricci 0:427833cc260e 300 if (StartDW.read_ms()>= 1000U)
marcoricci 0:427833cc260e 301 {
marcoricci 0:427833cc260e 302 if (CntDw > 0U)
marcoricci 0:427833cc260e 303 {
marcoricci 0:427833cc260e 304 CntDw--;
marcoricci 0:427833cc260e 305 buzzer.period(1./4000.); // set PWM period
marcoricci 0:427833cc260e 306 buzzer=0.5; // set duty cycle
marcoricci 0:427833cc260e 307 wait(0.05);
marcoricci 0:427833cc260e 308 buzzer.period(1./0.); // set PWM period
marcoricci 0:427833cc260e 309 }
marcoricci 0:427833cc260e 310 else
marcoricci 0:427833cc260e 311 {
marcoricci 0:427833cc260e 312 buzzer.period(1./3000.); // set PWM period
marcoricci 0:427833cc260e 313 buzzer=0.5; // set duty cycle
marcoricci 0:427833cc260e 314 wait(3.5);
marcoricci 0:427833cc260e 315 buzzer.period(1./0.); // set PWM period
marcoricci 0:427833cc260e 316 Level = LEVEL5;
marcoricci 0:427833cc260e 317 }
marcoricci 0:427833cc260e 318 StartDW.reset();
marcoricci 0:427833cc260e 319 }
marcoricci 0:427833cc260e 320 if (CntDw == 0) CounterDWend();
marcoricci 0:427833cc260e 321 else Visual7(CntDw);
marcoricci 0:427833cc260e 322 }
marcoricci 0:427833cc260e 323
marcoricci 0:427833cc260e 324 void Visual7(int counter)
marcoricci 0:427833cc260e 325 {
marcoricci 0:427833cc260e 326 unsigned short unit,dec,cent, tmpCntUP;
marcoricci 0:427833cc260e 327
marcoricci 0:427833cc260e 328 DG = 1U;
marcoricci 0:427833cc260e 329
marcoricci 0:427833cc260e 330 //centinaia
marcoricci 0:427833cc260e 331 tmpCntUP = counter/100U;
marcoricci 0:427833cc260e 332 cent = tmpCntUP;
marcoricci 0:427833cc260e 333 Seg1 = tabSeg[cent];
marcoricci 0:427833cc260e 334
marcoricci 0:427833cc260e 335 //decine
marcoricci 0:427833cc260e 336 tmpCntUP = counter- cent * 100U;
marcoricci 0:427833cc260e 337 tmpCntUP = tmpCntUP / 10U;
marcoricci 0:427833cc260e 338 dec = tmpCntUP;
marcoricci 0:427833cc260e 339 Seg2 = tabSeg[dec];
marcoricci 0:427833cc260e 340
marcoricci 0:427833cc260e 341 //unity
marcoricci 0:427833cc260e 342 tmpCntUP = counter - cent * 100U - dec * 10U;
marcoricci 0:427833cc260e 343 unit = tmpCntUP;
marcoricci 0:427833cc260e 344 Seg3 = tabSeg[unit];
marcoricci 0:427833cc260e 345 }
marcoricci 0:427833cc260e 346
marcoricci 0:427833cc260e 347 int SetCounterDW (int countrDW)
marcoricci 0:427833cc260e 348 {
marcoricci 0:427833cc260e 349 char out = 1;
marcoricci 0:427833cc260e 350
marcoricci 0:427833cc260e 351 do {
marcoricci 0:427833cc260e 352 if (Keyboard() != KEYNULL) {
marcoricci 0:427833cc260e 353
marcoricci 0:427833cc260e 354 switch (KeyPress) {
marcoricci 0:427833cc260e 355 case KEYSEL:
marcoricci 0:427833cc260e 356 if (countrDW > 0U) countrDW--;
marcoricci 0:427833cc260e 357 else countrDW = 180U;
marcoricci 0:427833cc260e 358 break;
marcoricci 0:427833cc260e 359 case KEYOK:
marcoricci 0:427833cc260e 360 Level = LEVEL4;
marcoricci 0:427833cc260e 361 out = 0U;
marcoricci 0:427833cc260e 362 break;
marcoricci 0:427833cc260e 363 }
marcoricci 0:427833cc260e 364 }
marcoricci 0:427833cc260e 365 Visual7(countrDW);
marcoricci 0:427833cc260e 366 } while (out);
marcoricci 0:427833cc260e 367
marcoricci 0:427833cc260e 368 return(countrDW);
marcoricci 0:427833cc260e 369 }
marcoricci 0:427833cc260e 370
marcoricci 0:427833cc260e 371 void CounterDWend(void)
marcoricci 0:427833cc260e 372 {
marcoricci 0:427833cc260e 373 Seg1 = tabFunc[6U];
marcoricci 0:427833cc260e 374 Seg2 = tabFunc[7U];
marcoricci 0:427833cc260e 375 Seg3 = tabFunc[8U];
marcoricci 0:427833cc260e 376 }
marcoricci 0:427833cc260e 377
marcoricci 0:427833cc260e 378
marcoricci 0:427833cc260e 379 // * --------------------------------------------------- *
marcoricci 0:427833cc260e 380 // * Buzzer *
marcoricci 0:427833cc260e 381 // * --------------------------------------------------- *
marcoricci 0:427833cc260e 382 void BuzzerSEL (void)
marcoricci 0:427833cc260e 383 {
marcoricci 0:427833cc260e 384 // buzzer
marcoricci 0:427833cc260e 385 buzzer.period(1./2000.); // set PWM period
marcoricci 0:427833cc260e 386 buzzer=0.5; // set duty cycle
marcoricci 0:427833cc260e 387 wait(0.05);
marcoricci 0:427833cc260e 388 buzzer.period(1./0); // set PWM period
marcoricci 0:427833cc260e 389 }
marcoricci 0:427833cc260e 390
marcoricci 0:427833cc260e 391 void BuzzerOK (void)
marcoricci 0:427833cc260e 392 {
marcoricci 0:427833cc260e 393 // buzzer
marcoricci 0:427833cc260e 394 buzzer.period(1./1000.); // set PWM period
marcoricci 0:427833cc260e 395 buzzer=0.5; // set duty cycle
marcoricci 0:427833cc260e 396 wait(0.05);
marcoricci 0:427833cc260e 397 buzzer.period(1./0); // set PWM period
marcoricci 0:427833cc260e 398 }