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@3:138c53fedf4e, 2021-06-03 (annotated)
- Committer:
- jack1930
- Date:
- Thu Jun 03 16:58:45 2021 +0000
- Revision:
- 3:138c53fedf4e
- Parent:
- 2:f7beca47603f
- Child:
- 4:5d2c270135ef
Getreidetrocknung mit Luefterueberwachung Stufe 2 geloest
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| jack1930 | 0:1f9f0461419d | 1 | /* mbed Microcontroller Library |
| jack1930 | 0:1f9f0461419d | 2 | * Copyright (c) 2019 ARM Limited |
| jack1930 | 0:1f9f0461419d | 3 | * SPDX-License-Identifier: Apache-2.0 |
| jack1930 | 0:1f9f0461419d | 4 | */ |
| jack1930 | 0:1f9f0461419d | 5 | |
| jack1930 | 0:1f9f0461419d | 6 | #include "mbed.h" |
| jack1930 | 0:1f9f0461419d | 7 | #include "LCD.h" |
| jack1930 | 0:1f9f0461419d | 8 | |
| jack1930 | 0:1f9f0461419d | 9 | lcd mylcd; |
| jack1930 | 1:83cf28b993af | 10 | int zeit= 100; //Zeit in ms |
| jack1930 | 0:1f9f0461419d | 11 | |
| jack1930 | 2:f7beca47603f | 12 | PortOut zustand(PortC,0b111111); |
| jack1930 | 0:1f9f0461419d | 13 | DigitalOut warnlampe(PC_7); |
| jack1930 | 0:1f9f0461419d | 14 | |
| jack1930 | 0:1f9f0461419d | 15 | InterruptIn TrocknenEin(PA_10); |
| jack1930 | 0:1f9f0461419d | 16 | InterruptIn TrocknenAus(PA_6); |
| jack1930 | 0:1f9f0461419d | 17 | DigitalIn Lichtschranke(PB_0); |
| jack1930 | 0:1f9f0461419d | 18 | |
| jack1930 | 3:138c53fedf4e | 19 | |
| jack1930 | 0:1f9f0461419d | 20 | //Zustandsdefinitionen |
| jack1930 | 0:1f9f0461419d | 21 | #define Aus 0b0000 |
| jack1930 | 0:1f9f0461419d | 22 | #define Anlaufen 0b1110 |
| jack1930 | 0:1f9f0461419d | 23 | #define Betrieb 0b1111 |
| jack1930 | 0:1f9f0461419d | 24 | #define Abschalten 0b0111 |
| jack1930 | 2:f7beca47603f | 25 | #define HaltAnlaufen 0b010000 |
| jack1930 | 2:f7beca47603f | 26 | #define HaltBetrieb 0b100000 |
| jack1930 | 2:f7beca47603f | 27 | #define HaltAbschalten 0b110000 |
| jack1930 | 2:f7beca47603f | 28 | |
| jack1930 | 2:f7beca47603f | 29 | |
| jack1930 | 0:1f9f0461419d | 30 | |
| jack1930 | 3:138c53fedf4e | 31 | |
| jack1930 | 0:1f9f0461419d | 32 | void melden(const char* txt) |
| jack1930 | 0:1f9f0461419d | 33 | { |
| jack1930 | 0:1f9f0461419d | 34 | mylcd.clear(); |
| jack1930 | 0:1f9f0461419d | 35 | mylcd.cursorpos(0); |
| jack1930 | 0:1f9f0461419d | 36 | mylcd.printf("%s",txt); |
| jack1930 | 0:1f9f0461419d | 37 | } |
| jack1930 | 0:1f9f0461419d | 38 | |
| jack1930 | 0:1f9f0461419d | 39 | void trocknenEin() |
| jack1930 | 0:1f9f0461419d | 40 | { |
| jack1930 | 0:1f9f0461419d | 41 | if (zustand==Aus) |
| jack1930 | 0:1f9f0461419d | 42 | { |
| jack1930 | 0:1f9f0461419d | 43 | zustand=Anlaufen; |
| jack1930 | 0:1f9f0461419d | 44 | melden("Anlauf"); |
| jack1930 | 0:1f9f0461419d | 45 | } |
| jack1930 | 0:1f9f0461419d | 46 | } |
| jack1930 | 0:1f9f0461419d | 47 | |
| jack1930 | 0:1f9f0461419d | 48 | void trocknenAus() |
| jack1930 | 0:1f9f0461419d | 49 | { |
| jack1930 | 0:1f9f0461419d | 50 | if (zustand==Betrieb) |
| jack1930 | 0:1f9f0461419d | 51 | { |
| jack1930 | 3:138c53fedf4e | 52 | warnlampe=0; |
| jack1930 | 0:1f9f0461419d | 53 | zustand=Abschalten; |
| jack1930 | 0:1f9f0461419d | 54 | melden("Abschalten"); |
| jack1930 | 0:1f9f0461419d | 55 | } |
| jack1930 | 0:1f9f0461419d | 56 | } |
| jack1930 | 0:1f9f0461419d | 57 | |
| jack1930 | 2:f7beca47603f | 58 | InterruptIn HALT(PB_4); |
| jack1930 | 2:f7beca47603f | 59 | void halt(){ |
| jack1930 | 2:f7beca47603f | 60 | switch (zustand) |
| jack1930 | 2:f7beca47603f | 61 | { |
| jack1930 | 2:f7beca47603f | 62 | case Anlaufen: zustand=HaltAnlaufen; melden("Halt"); break; |
| jack1930 | 2:f7beca47603f | 63 | case Betrieb: zustand=HaltBetrieb; melden("Halt"); break; |
| jack1930 | 2:f7beca47603f | 64 | case Abschalten: zustand=HaltAbschalten; melden("Halt"); break; |
| jack1930 | 2:f7beca47603f | 65 | } |
| jack1930 | 2:f7beca47603f | 66 | |
| jack1930 | 2:f7beca47603f | 67 | |
| jack1930 | 2:f7beca47603f | 68 | } |
| jack1930 | 3:138c53fedf4e | 69 | int z=0; |
| jack1930 | 3:138c53fedf4e | 70 | void ueberwachen() |
| jack1930 | 3:138c53fedf4e | 71 | { |
| jack1930 | 3:138c53fedf4e | 72 | if (z>5) warnlampe=0; |
| jack1930 | 3:138c53fedf4e | 73 | else warnlampe=1; |
| jack1930 | 3:138c53fedf4e | 74 | z=0; |
| jack1930 | 3:138c53fedf4e | 75 | } |
| jack1930 | 3:138c53fedf4e | 76 | void luefter() |
| jack1930 | 3:138c53fedf4e | 77 | { |
| jack1930 | 3:138c53fedf4e | 78 | z++; |
| jack1930 | 3:138c53fedf4e | 79 | } |
| jack1930 | 3:138c53fedf4e | 80 | InterruptIn Luefter(PA_1); |
| jack1930 | 0:1f9f0461419d | 81 | void init() |
| jack1930 | 0:1f9f0461419d | 82 | { |
| jack1930 | 3:138c53fedf4e | 83 | Luefter.rise(&luefter); |
| jack1930 | 2:f7beca47603f | 84 | HALT.mode(PullDown); |
| jack1930 | 2:f7beca47603f | 85 | HALT.rise(&halt); |
| jack1930 | 0:1f9f0461419d | 86 | TrocknenEin.mode(PullDown); |
| jack1930 | 0:1f9f0461419d | 87 | TrocknenAus.mode(PullDown); |
| jack1930 | 0:1f9f0461419d | 88 | Lichtschranke.mode(PullDown); |
| jack1930 | 0:1f9f0461419d | 89 | |
| jack1930 | 0:1f9f0461419d | 90 | TrocknenEin.rise(&trocknenEin); |
| jack1930 | 0:1f9f0461419d | 91 | TrocknenAus.rise(&trocknenAus); |
| jack1930 | 0:1f9f0461419d | 92 | |
| jack1930 | 0:1f9f0461419d | 93 | zustand=Aus; |
| jack1930 | 0:1f9f0461419d | 94 | } |
| jack1930 | 0:1f9f0461419d | 95 | |
| jack1930 | 3:138c53fedf4e | 96 | |
| jack1930 | 3:138c53fedf4e | 97 | |
| jack1930 | 0:1f9f0461419d | 98 | int main() |
| jack1930 | 0:1f9f0461419d | 99 | { |
| jack1930 | 0:1f9f0461419d | 100 | init(); |
| jack1930 | 0:1f9f0461419d | 101 | melden("bereit"); |
| jack1930 | 0:1f9f0461419d | 102 | |
| jack1930 | 0:1f9f0461419d | 103 | while (true) { |
| jack1930 | 0:1f9f0461419d | 104 | switch(zustand) |
| jack1930 | 0:1f9f0461419d | 105 | { |
| jack1930 | 0:1f9f0461419d | 106 | case Anlaufen: |
| jack1930 | 0:1f9f0461419d | 107 | if (Lichtschranke==1) |
| jack1930 | 0:1f9f0461419d | 108 | { |
| jack1930 | 0:1f9f0461419d | 109 | zustand=Betrieb; |
| jack1930 | 0:1f9f0461419d | 110 | melden("Betrieb"); |
| jack1930 | 0:1f9f0461419d | 111 | } |
| jack1930 | 0:1f9f0461419d | 112 | break; |
| jack1930 | 0:1f9f0461419d | 113 | case Abschalten: |
| jack1930 | 0:1f9f0461419d | 114 | if (Lichtschranke==0) |
| jack1930 | 0:1f9f0461419d | 115 | { |
| jack1930 | 0:1f9f0461419d | 116 | zustand=Aus; |
| jack1930 | 0:1f9f0461419d | 117 | melden("bereit"); |
| jack1930 | 0:1f9f0461419d | 118 | } |
| jack1930 | 0:1f9f0461419d | 119 | break; |
| jack1930 | 2:f7beca47603f | 120 | case HaltAnlaufen: |
| jack1930 | 2:f7beca47603f | 121 | if (HALT==0){ |
| jack1930 | 2:f7beca47603f | 122 | zustand=Anlaufen; |
| jack1930 | 2:f7beca47603f | 123 | melden("Anlaufen"); |
| jack1930 | 2:f7beca47603f | 124 | } |
| jack1930 | 2:f7beca47603f | 125 | break; |
| jack1930 | 2:f7beca47603f | 126 | case HaltBetrieb: |
| jack1930 | 2:f7beca47603f | 127 | if (HALT==0){ |
| jack1930 | 2:f7beca47603f | 128 | zustand=Betrieb; |
| jack1930 | 2:f7beca47603f | 129 | melden("Betrieb"); |
| jack1930 | 2:f7beca47603f | 130 | } |
| jack1930 | 2:f7beca47603f | 131 | break; |
| jack1930 | 2:f7beca47603f | 132 | case HaltAbschalten: |
| jack1930 | 2:f7beca47603f | 133 | if (HALT==0){ |
| jack1930 | 2:f7beca47603f | 134 | zustand=Abschalten; |
| jack1930 | 2:f7beca47603f | 135 | melden("Abschalten"); |
| jack1930 | 2:f7beca47603f | 136 | } |
| jack1930 | 2:f7beca47603f | 137 | break; |
| jack1930 | 3:138c53fedf4e | 138 | case Betrieb: ueberwachen(); |
| jack1930 | 3:138c53fedf4e | 139 | break; |
| jack1930 | 0:1f9f0461419d | 140 | } |
| jack1930 | 0:1f9f0461419d | 141 | |
| jack1930 | 0:1f9f0461419d | 142 | HAL_Delay(zeit); |
| jack1930 | 0:1f9f0461419d | 143 | } |
| jack1930 | 0:1f9f0461419d | 144 | } |