
Timer, Timeout, Ticker, PWM, Debounce
Dependencies: mbed
main.cpp
- Committer:
- madmonkeyman82
- Date:
- 2015-10-15
- Revision:
- 0:9084eb4405d5
File content as of revision 0:9084eb4405d5:
#include "mbed.h" //------------------------------------ // Hyperterminal configuration // 9600 bauds, 8-bit data, no parity //------------------------------------ Serial pc(SERIAL_TX, SERIAL_RX); Ticker toggle_led_ticker; Timeout timedown; //define pins DigitalOut led1(PA_9); InterruptIn SW7(PB_3); InterruptIn SW6(PA_10); //Variables static float tickertimer = 0.1; //Prototypes void toggle_led(); void timeouttick(); void interrupt(); void timeouttick() { SW7.enable_irq(); SW6.enable_irq(); } void interruptSW7(){ SW7.disable_irq(); timedown.attach(&timeouttick, 0.03); //debounce if(tickertimer > 0.00f) tickertimer += 0.01f; if(tickertimer > 0.00f) { toggle_led_ticker.attach(&toggle_led, tickertimer); } else { toggle_led_ticker.detach(); } } void interruptSW6(){ SW6.disable_irq(); timedown.attach(&timeouttick, 0.03); //debounce tickertimer -= 0.01f; toggle_led_ticker.attach(&toggle_led, tickertimer); } void toggle_led() { led1 = !led1; } int main() { pc.printf("Velkommen\r\n"); //attach interrup to faling edge SW7.fall(&interruptSW7); SW6.fall(&interruptSW6); // Init the ticker with the address of the function (toggle_led) to be attached and the interval (100 ms) while (true) { pc.printf("tickertimer: %2.3f\r\n", tickertimer); pc.printf("t\r\n"); // Do other things... } }