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:
- 1:c5769cd78933
- Parent:
- 0:05d73097e319
- Child:
- 2:d4fab8f3f21f
File content as of revision 1:c5769cd78933:
#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 uint8_t count;
volatile unsigned int count;
volatile unsigned int event=0;
volatile int led=0;
int ledsEin();
int msec300TimerOn();
int ledsTogglen();
int startTimer();
int msec300TimerOn()
{
startTimer();
return(1);
}
int stopTimer()
{
led1 = 0;
led2 = 0;
led3 = 0;
led4 = 0;
tick.detach();
return(2);
}
int ledsTogglen()
{
led1 = !led1;
led2 = !led2;
led3 = !led3;
led4 = !led4;
return(3);
}
int ledsEin()
{
led1 = 1;
led2 = 1;
led3 = 1;
led4 = 1;
return(4);
}
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++;
}
int ledsSwitch()
{
tick.attach(&switchled, 0.2);
return(0);
}
// interrupt SR
void blink()
{
ledsTogglen();
}
// functions
int startTimer()
{
tick.attach(&blink, 0.2);
return(0);
}
void debounce(PinName name, unsigned char samples)
{
DigitalIn joystick(name);
for(unsigned char j = 0; j < samples; j++)
{
if(joystick == 1)
j++;
else
j = 0;
if(j == samples)
break;
}
}
void doEvent()
{
switch(event)
{
case 0:
led1 = 0;
led2 = 0;
led3 = 0;
led4 = 0;
break;
case 1:
led = 0;
ledsSwitch();
break;
case 2:
stopTimer();
ledsTogglen();
break;
case 3:
msec300TimerOn();
break;
case 4:
stopTimer();
event = 0;
break;
default:
break;
}
}
int main()
{
while(1) {
if (button.rising()) {
event++;
doEvent();
}
}
}