Timer1 im CTC und LCD Probleme

Gast #4556048
Lesenswert?

Hallo zusammen,

derzeit arbeite ich an einem für mich größerem Projekt.
Das Ganze wird eine Gewächshaussteuerung mit einem Atmega8 als 
Steuereinheit.

Kurz das drum herrum:
 - IC2 : Mit LM75 & SHT21 & PCF8574 als Portexpander
 - ADW : LED für Beleuchtungsmessung ein Bodenfeuchtesensor und
         ein über ein R2R Wiederstand gespeister Drehschalter für die
         Displaysteuerung

Desweiteren 3 Taster zur Steuerung der Betriebsparameter. Ein 2 Zeiliges 
LCD Display gibt die Parameter über die Sensoren aus.

Soweit funktioniert auch alles.
Über dein Timer0 steuere ich ein Switch, welcher nach und nach die 
Sensoren ausließt. Erreicht meine Zählvariable in Timer0 einen 
bestimmten Wert wird das LCD aktuallisiert.
Im EEPROM des MCs stehen Grenzwerte die mit den Messungen verglichen 
werden. Wird z.B die maximale Lüftfeuchte überschritten soll ein Servo 
ein Fenster öffnen.

Und nun zu meinem Problem. Ich hatte geplant den Servo über den Timer1 
anzusteuern, doch sobalt das Timerinterrupt aktiv ist. Funktioniert das 
LCD nicht mehr.

Zu Debug zwecken habe ich dann überall im Code marker eingefühgt und 
dabei festgestellt. das lediglich in meiner Initialisierungsfunktion das 
Display noch angesteuert wird. Interessanter Weise wird das Display 
scheibar ständig resetet und mein in der Init stehender "TEST" immer 
wieder neu angezeigt.
Es sieht so aus als wenn sobalt TIMSK  |= (1<<OCIE1A);  gesetzt ist der 
Atmega stänig resetet.

bekomm ich Servo und LCD irgendwie unter einen Hut?

Code hängt im Anhang.
Ich hoffe ihr könnt mir weiterhelfen.
und reißt mich nicht außeinander ich lerne immer noch:)

Lg Verzweifelter
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren