Robert Buch / 1_Digitalio
Committer:
robertbuc
Date:
Sun Jan 12 21:58:09 2020 +0000
Revision:
0:b4e3ba4a7bd3
Digitalio

Who changed what in which revision?

UserRevisionLine numberNew contents of line
robertbuc 0:b4e3ba4a7bd3 1 /*
robertbuc 0:b4e3ba4a7bd3 2 6. [BtnLed1] Schreibe ein Programm in mbed C++, das die LED1 mit 100Hz blinken lässt.
robertbuc 0:b4e3ba4a7bd3 3 Nach drücken des Joysticks (BUTTON1 im Simulator) soll die LED1 mit 50Hz blinken
robertbuc 0:b4e3ba4a7bd3 4 und nach einem weiteren drücken wieder mit 100Hz.
robertbuc 0:b4e3ba4a7bd3 5 */
robertbuc 0:b4e3ba4a7bd3 6
robertbuc 0:b4e3ba4a7bd3 7 #include "mbed.h"
robertbuc 0:b4e3ba4a7bd3 8
robertbuc 0:b4e3ba4a7bd3 9 BusOut leds(D0,D3,D6,D9,D11,D12,A1,A5);
robertbuc 0:b4e3ba4a7bd3 10 //DigitalIn button1(A0);
robertbuc 0:b4e3ba4a7bd3 11 InterruptIn button1(A0);
robertbuc 0:b4e3ba4a7bd3 12
robertbuc 0:b4e3ba4a7bd3 13 int checkbutton=0;
robertbuc 0:b4e3ba4a7bd3 14 void btnled1();
robertbuc 0:b4e3ba4a7bd3 15 void isr();
robertbuc 0:b4e3ba4a7bd3 16 int main()
robertbuc 0:b4e3ba4a7bd3 17 {
robertbuc 0:b4e3ba4a7bd3 18
robertbuc 0:b4e3ba4a7bd3 19 button1.rise(&isr);
robertbuc 0:b4e3ba4a7bd3 20
robertbuc 0:b4e3ba4a7bd3 21 while(1)
robertbuc 0:b4e3ba4a7bd3 22 {
robertbuc 0:b4e3ba4a7bd3 23 if(checkbutton==1)
robertbuc 0:b4e3ba4a7bd3 24 {
robertbuc 0:b4e3ba4a7bd3 25 leds=!leds;
robertbuc 0:b4e3ba4a7bd3 26 wait_ms(150);
robertbuc 0:b4e3ba4a7bd3 27
robertbuc 0:b4e3ba4a7bd3 28 }
robertbuc 0:b4e3ba4a7bd3 29 else if(checkbutton==2)
robertbuc 0:b4e3ba4a7bd3 30 {
robertbuc 0:b4e3ba4a7bd3 31 btnled1();
robertbuc 0:b4e3ba4a7bd3 32 checkbutton=0;
robertbuc 0:b4e3ba4a7bd3 33 }
robertbuc 0:b4e3ba4a7bd3 34 else
robertbuc 0:b4e3ba4a7bd3 35 {
robertbuc 0:b4e3ba4a7bd3 36 btnled1();
robertbuc 0:b4e3ba4a7bd3 37 }
robertbuc 0:b4e3ba4a7bd3 38 }
robertbuc 0:b4e3ba4a7bd3 39 }
robertbuc 0:b4e3ba4a7bd3 40
robertbuc 0:b4e3ba4a7bd3 41
robertbuc 0:b4e3ba4a7bd3 42 void isr()
robertbuc 0:b4e3ba4a7bd3 43 {
robertbuc 0:b4e3ba4a7bd3 44 checkbutton++;
robertbuc 0:b4e3ba4a7bd3 45 }
robertbuc 0:b4e3ba4a7bd3 46
robertbuc 0:b4e3ba4a7bd3 47 void btnled1()
robertbuc 0:b4e3ba4a7bd3 48 {
robertbuc 0:b4e3ba4a7bd3 49 leds=!leds;
robertbuc 0:b4e3ba4a7bd3 50 wait_ms(350); //besser erkennbar
robertbuc 0:b4e3ba4a7bd3 51 }