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.
Dependencies: mbed
Revision 0:63709874455b, committed 2015-02-23
- Comitter:
- anti2810
- Date:
- Mon Feb 23 14:24:41 2015 +0000
- Child:
- 1:4d500c8ba221
- Commit message:
- Hi
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/BtnEventM0.h Mon Feb 23 14:24:41 2015 +0000
@@ -0,0 +1,144 @@
+class BtnEventM0
+{
+public:
+ int16_t pressed;
+
+ BtnEventM0(PinName pin) : _isr(pin) {
+ pressed=0;
+ }
+
+ // Ist eine steigende Flanke aufgetreten ?
+ int CheckFlag() {
+ if( pressed ) {
+ pressed=0;
+ return 1;
+ }
+ return 0;
+ }
+
+ // 1..Button is pressed else 0
+ int CheckButton() {
+ return _isr.read();
+ }
+
+ void Init() {
+ _isr.rise(this, &BtnEventM0::RisingISR);
+ }
+
+ void RisingISR() {
+ if( _isr.read() )
+ pressed = 1;
+ }
+protected:
+ InterruptIn _isr;
+};
+
+/*
+class BtnEventM02 : public BtnEventM0
+{
+public:
+ BtnEventM02(PinName pin) : BtnEventM0(pin) {
+ _tm.stop();
+ _tm.reset();
+ _state=1;
+ }
+
+ void Init() {
+ _isr.rise(this, &BtnEventM02::RisingISR);
+ }
+
+ void RisingISR() {
+ if( !_isr.read() )
+ return;
+ pressed = 1;
+ _tm.start();
+ _state = 2;
+ }
+
+ void CheckButton() {
+ if( _state==1 )
+ return;
+ if( _state==2 ) {
+ if( !_isr.read() ) {
+ _state = 1;
+ return;
+ }
+ if( _tm.read_ms()>500 ) {
+ _tm.reset();
+ _state = 3;
+ pressed = 1;
+ }
+ } else if( _state==3 ) {
+ if( !_isr.read() ) {
+ _state = 1;
+ return;
+ }
+ if( _tm.read_ms()>100 ) {
+ _tm.reset();
+ _state = 3;
+ pressed = 1;
+ }
+ }
+ }
+private:
+ int16_t _state;
+ Timer _tm;
+};
+*/
+
+class AnalogInHL : public AnalogIn
+{
+public:
+ AnalogInHL(PinName pin) : AnalogIn(pin) { }
+ int Read() {
+ return read_u16()>>6;
+ }
+};
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Mon Feb 23 14:24:41 2015 +0000
@@ -0,0 +1,115 @@
+#include "mbed.h"
+#include "BtnEventM0.h"
+
+BusOut lb(P1_7,P1_6,P1_4,P1_3,P1_1,P1_0,LED4,LED3,LED2,LED1);
+BusOut stLED(P1_13,P1_12);
+
+BtnEventM0 Btn1(P0_15), Btn2(P0_23);
+
+class FahrradLeuchte { //Eine Klasse namens FahrradLeuchte
+ public: //Öffentlich
+ void Init() { state=1; t1.start(); } //Beim Aufrufen wird der Status auf 1 gesetzt und der Timer t1 gestartet
+ void State1Func(); //Funktion definieren
+ void State2Func(); //Funktion definieren
+ void State3Func(); //Funktion definieren
+ public: //Öffentlich
+ void State1Action(); //Funktion definieren
+ void State2Action(); //Funktion definieren
+ void State3Action(); //Funktion definieren
+ public: //Öffentlich
+ int state; //Integer state definieren
+ Timer t1; //Timer t1 definieren
+};
+
+FahrradLeuchte fl; //Klasse als Variabel aktivieren
+
+int main() { //Main-Funktion
+ lb=0; //Gesamte Ledbar auf 0 setzen
+ Btn1.Init(); Btn2.Init(); //Btn1 und Btn2 mit Init ansprechen
+ fl.Init();
+ while(1)
+ {
+ if( fl.state==1 )
+ fl.State1Func();
+ if( fl.state==2 )
+ fl.State2Func();
+ if( fl.state==3 )
+ fl.State3Func();
+ }
+
+}
+
+void FahrradLeuchte::State1Func()
+{
+ t1.reset();
+ stLED = 1;
+ while(1)
+ {
+ State1Action();
+ if( Btn1.CheckFlag() )
+ { state=2; return; }
+ if( Btn2.CheckFlag() )
+ { state=3; return; }
+ }
+}
+
+void FahrradLeuchte::State2Func()
+{
+ t1.reset();
+ stLED = 2;
+ while(1)
+ {
+ State2Action();
+ if( Btn1.CheckFlag() )
+ { state=3; return; }
+ if( Btn2.CheckFlag() )
+ { state=1; return; }
+ }
+}
+
+void FahrradLeuchte::State3Func()
+{
+ t1.reset();
+ stLED = 3;
+ while(1)
+ {
+ State3Action();
+ if( Btn1.CheckFlag() )
+ { state=1; return; }
+ if( Btn2.CheckFlag() )
+ { state=2; return; }
+ }
+}
+
+void FahrradLeuchte::State1Action()
+{
+ if( t1.read_ms()<500 )
+ return;
+ t1.reset();
+ if( lb==0 )
+ lb = 512;
+ else
+ lb = 0;
+}
+
+void FahrradLeuchte::State2Action()
+{
+ if( t1.read_ms()<200 )
+ return;
+ t1.reset();
+ if( lb==0 )
+ lb = 256;
+ else
+ lb = 0;
+}
+
+void FahrradLeuchte::State3Action()
+{
+ if( t1.read_ms()<100 )
+ return;
+ t1.reset();
+ if( lb==0 )
+ lb = 128;
+ else
+ lb = 0;
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Mon Feb 23 14:24:41 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/e188a91d3eaa \ No newline at end of file