Jim Mueller
/
ampel
Ampel an PC_7..PC_0 taste an PA_1 Analogeingang PA_0
Diff: main.cpp
- Revision:
- 0:08785d445b51
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed May 05 13:45:18 2021 +0000 @@ -0,0 +1,93 @@ +/* mbed Microcontroller Library + * Copyright (c) 2019 ARM Limited + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "mbed.h" +#include "platform/mbed_thread.h" +#include "LCD.h" + +/* +Bei mir: +PC_7 Fussgänger grün +PC_6 Fußgänger rot FG rot:0b01 +PC_5 auto1 gelb +PC_4 auto1 grün +PC_3 auto1 rot =>FG rot, auto1 rot :0b01 001 +PC_2 auto2 gelb 1 +PC_1 auto2 grün 0 +PC_0 auto2 rot 1 =>FG rot, auto1 rot, auto2 rot :0b01 001 001 +*/ +#define rotrotrot 0b01001001 //FG rot, auto1 rot, auto2 rot :0b01 001 001 +#define rotrotorange 0b01001101 //FG rot, auto1 rot, auto2 rotgelb :0b01 001 101 +#define rotrotgruen 0b01001010 //FG rot, auto1 rot, auto2 gruen :0b01 001 101 +#define rotrotgelb 0b01001100 //FG rot, auto1 rot, auto2 gelb :0b01 001 101 +#define rotorangerot 0b01101001 //FG rot, auto1 rot, auto2 rotgelb :0b01 001 101 +#define rotgruenrot 0b01010001 //FG rot, auto1 rot, auto2 gruen :0b01 001 101 +#define rotgelbrot 0b01010001 //FG rot, auto1 rot, auto2 gelb :0b01 001 101 +#define gruenrotgelb 0b10001001 //FG grün, auto1 rot, auto2 rot :0b01 001 001 + + +//1. Deklarieren global +//Wir legen fest: +// a) welche Anschlüsse sollen verwendet werden +// b) den Namen der Anschlüsse im Programm +// c) die Richtung Eingänge oder Ausgänge +PortOut anzeige(PortC,0b11111111); + +lcd mylcd; + +AnalogIn poti(PA_0); + +int main() +{ + // Initialise the digital pin LED1 as an output + DigitalOut led(LED1); + DigitalIn taste(PA_1); + taste.mode(PullDown); //bei nicht betätigt taste=0 (inaktiv) + mylcd.clear(); + + while (true) { + led = !led; + + anzeige=rotrotrot; + mylcd.cursorpos(0); + mylcd.printf("rot rot rot "); + thread_sleep_for(poti*1000); + anzeige=rotrotorange; + mylcd.cursorpos(0); + mylcd.printf("rot rot orange "); + thread_sleep_for(poti*1000); + anzeige=rotrotgruen; + mylcd.cursorpos(0); + mylcd.printf("rot rot gruen "); + thread_sleep_for(poti*1000); + anzeige=rotrotgelb; + mylcd.cursorpos(0); + mylcd.printf("rot rot gelb "); + thread_sleep_for(poti*1000); + anzeige=rotrotrot; + mylcd.cursorpos(0); + mylcd.printf("rot rot rot "); + thread_sleep_for(poti*1000); + anzeige=rotorangerot; + mylcd.cursorpos(0); + mylcd.printf("rot orange rot "); + thread_sleep_for(poti*1000); + anzeige=rotgruenrot; + mylcd.cursorpos(0); + mylcd.printf("rot gruen rot "); + thread_sleep_for(poti*1000); + anzeige=rotgelbrot; + mylcd.cursorpos(0); + mylcd.printf("rot gelb rot "); + thread_sleep_for(poti*1000); + if (taste==1) + { + anzeige=gruenrotgelb; + mylcd.cursorpos(0); + mylcd.printf("gruen rot gelb "); + thread_sleep_for(poti*1000); + } + } +}