Hallo zusammen,
mit meinem Programm komme ich aus einer Art Teufelskreis nicht mehr hinaus.
Zweck des Programms: Ich möchte 11 Temperaturen in 11 Aquarien messen und in 5 Aquarien die Temperatur aktiv über Heizer regeln. Zudem möchte ich eine jederzeit zuschaltbare Zusatzbeleuchtung, die nach Betätigung eines Tasters ausgelöst und ca. 4 Stunden in Betrieb bleiben soll, realisieren. Zuletzt soll noch eine 12V Dosierpumpe über Timer 2 mit PWM angesteuert werden können. Diese ist programmtechnisch noch nicht berücksichtigt worden. All das soll mit einem Drehgeber mit Taster gesteuert werden.
Programmdarstellung:Einem Drehgeber hatte ich die Variable “Wert“ zugewiesen und über Wert Subroutinen verknüpft. Durch Betätigen des Drehgebertasters gelangt man ins Sub “Menue“. Dort sind die einzelnen Subs unter Wertaufgeführt. Durch Drehen des Gebers werden dann die gewünschten Subs angesprungen. Auch das funktioniert noch. Aber dann treten meine Probleme auf:
Wähle ich z.B. den Wert 99an, so läuft die unter 99 angesiedelte Sub „“Automatische Anzeige“ problemfrei und beginnt nach Erreichen der letzten Aquarientemperatur auch wieder bei 600 L Becken oben. Aber: Ich komme dann nicht mehr aus dieser Schleife raus!
Gleiches geschieht auch bei den manuellen Anzeigen, Wert 98 bis 88. Die gewählte Sub kann nicht mehr verlassen werden. Mir ist schon klar, dass die Spaßverderber die Do - Loop – until……, die Goto-Anweisungen etc. sind, die den Wechsel zu anderen Subs unterbinden. Aber mit Gosub und Return lande ich wieder im Sub Menü. Da will ich aber auch nicht hin!
Einen Ausweg habe ich in Exit Dogesehen. Bei mir funktionierte diese Anweisung aber nicht, möglicherweise hatte ich Exit Do auch nicht an den richtigen Programmstellen platziert. Aber wo wäre Exit Do zu platzieren? Ich sehe diese Stelle nicht.
Hat jemand einen Tipp, wie es funktionieren könnte? Für jede Hilfe bin ich sehr, sehr dankbar!
Als Anlage füge ich mal den Quelltext, den Schaltplan und die Beschaltung des ATmega32 bei.
Grüße Wilfried
mit meinem Programm komme ich aus einer Art Teufelskreis nicht mehr hinaus.
Zweck des Programms: Ich möchte 11 Temperaturen in 11 Aquarien messen und in 5 Aquarien die Temperatur aktiv über Heizer regeln. Zudem möchte ich eine jederzeit zuschaltbare Zusatzbeleuchtung, die nach Betätigung eines Tasters ausgelöst und ca. 4 Stunden in Betrieb bleiben soll, realisieren. Zuletzt soll noch eine 12V Dosierpumpe über Timer 2 mit PWM angesteuert werden können. Diese ist programmtechnisch noch nicht berücksichtigt worden. All das soll mit einem Drehgeber mit Taster gesteuert werden.
Programmdarstellung:Einem Drehgeber hatte ich die Variable “Wert“ zugewiesen und über Wert Subroutinen verknüpft. Durch Betätigen des Drehgebertasters gelangt man ins Sub “Menue“. Dort sind die einzelnen Subs unter Wertaufgeführt. Durch Drehen des Gebers werden dann die gewünschten Subs angesprungen. Auch das funktioniert noch. Aber dann treten meine Probleme auf:
Wähle ich z.B. den Wert 99an, so läuft die unter 99 angesiedelte Sub „“Automatische Anzeige“ problemfrei und beginnt nach Erreichen der letzten Aquarientemperatur auch wieder bei 600 L Becken oben. Aber: Ich komme dann nicht mehr aus dieser Schleife raus!
Gleiches geschieht auch bei den manuellen Anzeigen, Wert 98 bis 88. Die gewählte Sub kann nicht mehr verlassen werden. Mir ist schon klar, dass die Spaßverderber die Do - Loop – until……, die Goto-Anweisungen etc. sind, die den Wechsel zu anderen Subs unterbinden. Aber mit Gosub und Return lande ich wieder im Sub Menü. Da will ich aber auch nicht hin!
Einen Ausweg habe ich in Exit Dogesehen. Bei mir funktionierte diese Anweisung aber nicht, möglicherweise hatte ich Exit Do auch nicht an den richtigen Programmstellen platziert. Aber wo wäre Exit Do zu platzieren? Ich sehe diese Stelle nicht.
Hat jemand einen Tipp, wie es funktionieren könnte? Für jede Hilfe bin ich sehr, sehr dankbar!
Als Anlage füge ich mal den Quelltext, den Schaltplan und die Beschaltung des ATmega32 bei.
Grüße Wilfried