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-10-22
- Revision:
- 2:d4fab8f3f21f
- Parent:
- 1:c5769cd78933
- Child:
- 3:c048b13bc1d0
File content as of revision 2:d4fab8f3f21f:
#include "mbed.h"
#include "DebouncedIn.h"
Ticker tick;
DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);
DebouncedIn button(p12);
// 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.
volatile unsigned int event=0;
volatile int led=0;
void switchled();
void blinkled();
void ledsSwitchTimer()
{
tick.attach(&switchled, 0.2);
}
void ledsBlinkTimer()
{
tick.attach(&blinkled, 0.2);
}
void stopTimer()
{
led1 = 0;
led2 = 0;
led3 = 0;
led4 = 0;
tick.detach();
}
void ledsEin()
{
led1 = 1;
led2 = 1;
led3 = 1;
led4 = 1;
}
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();
}
void doEvent()
{
switch(event)
{
case 0:
led1 = 0;
led2 = 0;
led3 = 0;
led4 = 0;
break;
case 1:
led = 0;
ledsSwitchTimer();
break;
case 2:
stopTimer();
ledsTogglen();
break;
case 3:
ledsBlinkTimer();
break;
case 4:
stopTimer();
event = 0;
break;
default:
break;
}
}
int main()
{
while(1) {
if (button.rising()) {
event++;
doEvent();
}
}
}