![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
:-)
Dependencies: mbed
Diff: main.cpp
- Revision:
- 0:6cdbaa8e5be1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Jan 21 17:07:55 2016 +0000 @@ -0,0 +1,52 @@ +#include "mbed.h" + +int main() { + while(1) { + + } +} + +// Eingang +DigitalIn ##( /*Pinbezeichnung*/ ); +BusIn ##(/*Pinbezeichnung*/,/*Pinbezeichnung*/); + +//Ausgang +DigitalOut ##( /*Pinbezeichnung*/ ); +BusOut ##( /*Pinbezeichnung*/,/*Pinbezeichnung*/ ); + +//Ledbar mit 12 Leds +// 2^0 2^1 2^2 +BusOut lb(P1_13, P1_12, P1_7, P1_6, P1_4, P1_3, P1_1, P1_0, LED4, LED3, LED2, LED1); +// D20 D19 D18 D17 D16 D15 D14 D13 D$ D3 D2 D1 + +//Interrupt +//definieren +InterruptIn ##(/*Pinbezeichnung*/); +//Steigende Flanke +##.rise(&/*funktion die ausgeführt werden soll*/); +//Fallende Flanke +##.fall(&/*funktion die ausgeführt werden soll*/); + + +//Entprellung +uint8_t debounce(DigitalIn myIn) +{ +#define LEVEL_CHECKS 8 +#define MAX_LOOPS 30 // 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(150); + 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; +} + +