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.
Diff: 7_timer_interrupt_timeout_ticker_beispiel.cpp
- Revision:
- 0:af7895afc78f
diff -r 000000000000 -r af7895afc78f 7_timer_interrupt_timeout_ticker_beispiel.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/7_timer_interrupt_timeout_ticker_beispiel.cpp Sun Jan 12 22:46:26 2020 +0000
@@ -0,0 +1,82 @@
+/*
+//(Beispielhaft)Beschreiben Sie obiges Programm möglichst genau.
+
+
+//led1 wird leuchten jede sekunde - ausgelöst durch den ticker
+//led2 wird leuchten sobald die vorgegeben zeit, hier 2.5 sekunden abgelaufen ist.
+//led3 wird leuchten wenn button1 aktiviert wird
+
+//timer misst die Zeit zwischen start und stop.
+Als Timer oder auch Counter bezeichnet man bei Mikrocontrollern einen auf dem Chip
+integriertes Funktionsmodul, welcher beim Zählen von Ereignissen, Messen von Zeitabständen
+und periodischen Ausführen von Programmteilen eine wichtige Hilfe darstellt.
+Möchte man zum Beispiel eine Uhr realisieren, dann konfiguriert man den Timer so,
+dass z.B. exakt 100 mal pro Sekunde ein Interrupt ausgelöst wird.
+In der Interruptroutine kann man dann eine Variable hochzählen und nach 100 Interrupts
+die Zeitanzeige aktualisieren. timer funktioniert bis 30 minuten.
+
+
+ Ticker: LED1 will blink every second
+ InterruptIn: LED2 can be toggled through BUTTON1
+ Timeout: LED3 will toggle after 2.5 seconds
+
+*/
+
+
+#include "mbed.h"
+
+
+//BusOut leds(D0,D3,D6,D9,D11,D12,A1,A5);
+
+
+DigitalOut led1(D0);
+DigitalOut led2(D3);
+DigitalOut led3(A1);
+DigitalOut led4(A5);
+
+
+Ticker t1;
+Timeout t2;
+Timer t3;
+InterruptIn button1(A0);
+
+void ticker_t1();
+void timeout_t2();
+void isr();
+
+int main()
+{
+
+ t3.start();
+ t1.attach(callback(&ticker_t1),1.0f);
+ t2.attach(callback(&timeout_t2),2.5f);
+ button1.fall(callback(&isr));
+
+ t3.stop();
+ printf("Zeit: %f\n",t3.read());
+ t3.reset();
+ while(1)
+ {
+
+ }
+
+}
+
+void isr()
+{
+ led2=!led2;
+}
+
+
+void timeout_t2()
+{
+ led3=!led3;
+}
+
+
+void ticker_t1()
+{
+
+ led1=!led1;
+
+}