![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
PWM_Modulation LED
main.cpp
- Committer:
- chrish
- Date:
- 2013-05-14
- Revision:
- 0:42f712bdf324
File content as of revision 0:42f712bdf324:
#include "mbed.h" #include "TextLCD.h" //#include "pwmled.h" Ticker systick; Ticker resetrut; volatile char bstandby; PwmOut led(LED1); DigitalIn hell(p10); DigitalIn dunk(p11); TextLCD lcd(p15, p16, p17, p18, p19, p20); int zahler; int zahleroff; //==================================================00 void vTimer(void){ bstandby =1;} //==================================== void reset(void){ if(hell==0 || dunk==0){ zahler = 0; zahleroff = 0;} } //=================================================== int main() { float pulsw; //void (*p)(); pulsw = 0.5; zahler =0 ; // Zähler wieviel mal die systemzeit durchgelaufen ist. zahleroff =0; bool on=0; //led = pulsw; systick.attach(&vTimer, 0.037); resetrut.attach(&reset, 1); while(1) { //============================================0 if(hell){ if(on){ if(!dunk){ lcd.locate(0,0); lcd.printf("HELL PRESS"); if(pulsw <= 0.98){ pulsw+= 0.01; led = pulsw;} } }else{ // EINSCHALTRUTINE !!!!!! if(dunk){ if(zahler == 10){on = 1 ; led = pulsw; zahler = 0;} else zahler +=1; } } } //===============================================0 if(dunk){ if(on){ if(hell){ // ausschaltrutine !!!!! if(zahleroff == 10 ){ on = 0; led =0; zahleroff = 0;} else zahleroff +=1; }else{ lcd.locate(0,0); lcd.printf("DUNK PRESS"); if(pulsw >= 0.02){ pulsw -= 0.01; led = pulsw; } } } } //==================================================== // lcd.cls(); lcd.locate(0,1); lcd.printf("%f",pulsw); lcd.locate(9,1); lcd.printf("%d",zahler); lcd.locate(13,1); lcd.printf("%d",zahleroff); while(bstandby == 0) {}; bstandby = 0; } }