Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
- Committer:
- philipp19961
- Date:
- 2014-11-05
- Revision:
- 4:612095337fb0
- Parent:
- 3:c048b13bc1d0
File content as of revision 4:612095337fb0:
#include "mbed.h"
#include "DebouncedIn.h"
Ticker tick;
DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);
DebouncedIn button(p14);
// Zum Schalten: 1 Taster PINA PA0
// 1. Funktion
// Start-Taste 1x betätigen:
// Dauerlicht aller 4 LEDs
// 2. Funktion
// Start-Taste ein 2.mal betätigen:
// LEDs blinken im ca. 400 Millisekunden-Takt; 200 msec Ein, 200 msec Aus
// Ausschalten des Rücklichts
// Die Start-Taste ein 3.mal betätigen:
// Alle LEDs aus.
int ledsEin();
int ledsBlinkTimer();
int ledsAus();
int ledsSwitchTimer();
int stopTimer();
int(*action[5])()= {ledsSwitchTimer, stopTimer, ledsEin, ledsBlinkTimer, ledsAus };
volatile int event = -1;
volatile int led=0;
void switchled();
void blinkled();
int stopTimer()
{
led1 = 0;
led2 = 0;
led3 = 0;
led4 = 0;
tick.detach();
event++;
(action[event])();
return 0;
}
int ledsBlinkTimer()
{
tick.attach(&blinkled, 0.2);
return 0;
}
int ledsEin()
{
led1 = 1;
led2 = 1;
led3 = 1;
led4 = 1;
return 0;
}
int ledsAus()
{
tick.detach();
event = -1;
led1 = 0;
led2 = 0;
led3 = 0;
led4 = 0;
return 0;
}
int ledsSwitchTimer()
{
tick.attach(&switchled, 0.2);
return 0;
}
void ledsTogglen()
{
led1 = !led1;
led2 = !led2;
led3 = !led3;
led4 = !led4;
}
void switchled()
{
switch(led)
{
case 0:
led1 = 1;
break;
case 1:
led1 = 0;
led2 = 1;
break;
case 2:
led2 = 0;
led3 = 1;
break;
case 3:
led3 = 0;
led4 = 1;
break;
case 4:
led4 = 0;
led = -1;
break;
}
led++;
}
void blinkled()
{
ledsTogglen();
}
int main()
{
while(1) {
if (button.rising()) {
event++;
(action[event])();
}
}
}