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
00001 /* mbed Microcontroller Library 00002 * Copyright (c) 2019 ARM Limited 00003 * SPDX-License-Identifier: Apache-2.0 00004 */ 00005 00006 #include "mbed.h" 00007 #include "LCD.h" 00008 00009 lcd mylcd; 00010 int zeit= 100; //Zeit in ms 00011 00012 PortOut zustand(PortC,0b111111); 00013 DigitalOut warnlampe(PC_7); 00014 00015 InterruptIn TrocknenEin(PA_10); 00016 InterruptIn TrocknenAus(PA_6); 00017 DigitalIn Lichtschranke(PB_0); 00018 00019 //Zustandsdefinitionen 00020 #define Aus 0b0000 00021 #define Anlaufen 0b1110 00022 #define Betrieb 0b1111 00023 #define Abschalten 0b0111 00024 #define HaltAnlaufen 0b010000 00025 #define HaltBetrieb 0b100000 00026 #define HaltAbschalten 0b110000 00027 00028 00029 00030 void melden(const char* txt) 00031 { 00032 mylcd.clear(); 00033 mylcd.cursorpos(0); 00034 mylcd.printf("%s",txt); 00035 } 00036 00037 void trocknenEin() 00038 { 00039 if (zustand==Aus) 00040 { 00041 zustand=Anlaufen; 00042 melden("Anlauf"); 00043 } 00044 } 00045 00046 void trocknenAus() 00047 { 00048 if (zustand==Betrieb) 00049 { 00050 zustand=Abschalten; 00051 melden("Abschalten"); 00052 } 00053 } 00054 00055 InterruptIn HALT(PB_4); 00056 void halt(){ 00057 switch (zustand) 00058 { 00059 case Anlaufen: zustand=HaltAnlaufen; melden("Halt"); break; 00060 case Betrieb: zustand=HaltBetrieb; melden("Halt"); break; 00061 case Abschalten: zustand=HaltAbschalten; melden("Halt"); break; 00062 } 00063 00064 00065 } 00066 void init() 00067 { 00068 HALT.mode(PullDown); 00069 HALT.rise(&halt); 00070 TrocknenEin.mode(PullDown); 00071 TrocknenAus.mode(PullDown); 00072 Lichtschranke.mode(PullDown); 00073 00074 TrocknenEin.rise(&trocknenEin); 00075 TrocknenAus.rise(&trocknenAus); 00076 00077 zustand=Aus; 00078 } 00079 00080 int main() 00081 { 00082 init(); 00083 melden("bereit"); 00084 00085 while (true) { 00086 switch(zustand) 00087 { 00088 case Anlaufen: 00089 if (Lichtschranke==1) 00090 { 00091 zustand=Betrieb; 00092 melden("Betrieb"); 00093 } 00094 break; 00095 case Abschalten: 00096 if (Lichtschranke==0) 00097 { 00098 zustand=Aus; 00099 melden("bereit"); 00100 } 00101 break; 00102 case HaltAnlaufen: 00103 if (HALT==0){ 00104 zustand=Anlaufen; 00105 melden("Anlaufen"); 00106 } 00107 break; 00108 case HaltBetrieb: 00109 if (HALT==0){ 00110 zustand=Betrieb; 00111 melden("Betrieb"); 00112 } 00113 break; 00114 case HaltAbschalten: 00115 if (HALT==0){ 00116 zustand=Abschalten; 00117 melden("Abschalten"); 00118 } 00119 break; 00120 } 00121 00122 HAL_Delay(zeit); 00123 } 00124 }
Generated on Fri Mar 10 2023 01:50:44 by
1.7.2