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:
- martwerl
- Date:
- 2018-11-15
- Revision:
- 11:a07dfec403e5
- Parent:
- 10:6495a89d66ed
File content as of revision 11:a07dfec403e5:
#include "mbed.h" #include "Fahrradleuchte.h" // LSB MSB BusOut lb(P1_13,P1_12,P1_7,P1_6,P1_4,P1_3,P1_1,P1_0,LED4,LED3,LED2,LED1); //StatusLED zeigt uns in welchem Zustand die Statemachine gerade ist BusOut stLED(P1_13,P1_12); //BtnEventM0 erledigt di eAbfrage der positiven Flanke BtnEventM0 sw4(P1_16), sw2(P0_15), sw1(P0_10), sw3(P0_23); //sw4 = foreward, sw3 = backward class Fahrradleuchte { public: void Init(); void State1Func();//Funktionen, die auch von außerhalb der Klasse aufgerufen werden können void State2Func(); void State3Func(); void State1Action();//Aktionen, die auch von außen aufgerufen werden können Bit2 (LED) mit 10 Hz blinken void State2Action();//Bit2(LED) mit 5 Hz blinken void State3Action();//Bit6(LED) mit 2 Hz blinken public: int state;//zeigt an, in welchem Zustand sich die Leuchte befindet. private://Kann nur in dieser Klasse aufgerufen werden Timer t1; };//HIER: Klasse mit Strichpunkt beenden Fahrradleuchte fl;//Objekt fl anlegen //Fahrradleuchte fl2; zB... int main(void) { sw3.Init();//P0_23 backward sw4.Init();//P1_16 foreward fl.Init();//Objekt von Fahrradleuchte //fl2.Init(); zB... while(1) { if(fl.state==1) fl.State1Func(); if(fl.state==2) fl.State2Func(); if(fl.state==3) fl.State3Func(); } } void Fahrradleuchte::Init() { t1.start(); state=1; //fl.state=1; zB... //fl2.state =14; zB... } void Fahrradleuchte::State1Func() { //einmalige Aktion beim Eintritt in die Zustandsfunktion stLED=1;//Anzeigen, dass wir im "state 1" sind while(1) { State1Action(); //Buttons abfragen und möglicherweise Zustand ändern if(sw4.CheckFlag()) { state=2; return; } if(sw3.CheckFlag()) { state=3; return; } } } void Fahrradleuchte::State2Func() { //einmalige Aktion beim Eintritt in die Zustandsfunktion stLED=1;//Anzeigen, dass wir im "state 1" sind while(1) { State1Action(); //Buttons abfragen und möglicherweise Zustand ändern if(sw4.CheckFlag()) { state=2; return; } if(sw3.CheckFlag()) { state=3; return; } } } void Fahrradleuchte::State3Func() { //einmalige Aktion beim Eintritt in die Zustandsfunktion stLED=1;//Anzeigen, dass wir im "state 1" sind while(1) { State1Action(); //Buttons abfragen und möglicherweise Zustand ändern if(sw4.CheckFlag()) { state=2; return; } if(sw3.CheckFlag()) { state=3; return; } } } void Fahrradleuchte::State1Action() { if(t1.read_ms()>100) //10Hz { t1.reset(); if(lb==0) lb=4; else lb=0; } }