the new engineer´s
/
LED_PWM_ansteuerung
test
main.cpp
- Committer:
- schoeni_91
- Date:
- 2016-05-03
- Revision:
- 0:54ed9f9de1fb
File content as of revision 0:54ed9f9de1fb:
#include "mbed.h" #include "C12832_lcd.h" C12832_LCD lcd; PwmOut led(LED1); InterruptIn iiDown(p12); DigitalIn diDown(p12); InterruptIn iiUp(p15); DigitalIn diUp(p15); float brightness=0.0; uint8_t debounce(DigitalIn myIn) { #define LEVEL_CHECKS 132 #define MAX_LOOPS 36 // stoppt das Überprüfen des Prellen nach max. MAX_LOOPS Durchläufen unsigned char port_buffer; unsigned char debounceCounter = 0; uint8_t loopCounter = 0; do { port_buffer = myIn; wait_us(500); loopCounter++; if(myIn == port_buffer) debounceCounter++; // mindestens 'LEVEL_CHECKS' Abtastungen in Folge: gleicher Pegel else debounceCounter = 0; } while ((debounceCounter <= LEVEL_CHECKS) && (loopCounter <= MAX_LOOPS)); return loopCounter; } void bightnessUP() { debounce(diUp); brightness += 0.1; led = brightness; } void bightnessDOWN() { debounce(diDown); brightness -= 0.1; led = brightness; } void init () { iiUp.rise(&bightnessUP); iiDown.rise(&bightnessDOWN); } void abschalten() { lcd.cls(); lcd.locate(0,0); lcd.printf("SNT abschalten !!"); } int main() { while(true) { init(); if (brightness>=0.8) { abschalten (); } if (brightness<=0.8) { lcd.cls(); } } }