Forum: Mikrocontroller und Digitale Elektronik Wieder mal LCD


von Robert P (Gast)


Lesenswert?

Hallo.
Ich suche schon seit Tagen einen Ansatz für folgendes Problem:
Ein ATMEGA 32 Steuert unter anderem ein LCD an. (PORT B) . Sobald ich 
einen Timer ( egal welchen ) anspreche bleibt das ganze Programm stehen. 
LCD tot. Nix geht mehr...
Also: Programm läuft, Alles funktioniert wunderbar. Wenn ich folgende 
Zeilen einfüge bleibt alles stehen.

TCCR0 |= (1<<CS00);
TIMSK |= (1<<TOIE0);
sei();

Da ich wenig Ahnung von der Materie habe nehme ich an das ich 
irgendwelche Einstellungen vergessen habe.... Oder was mache ich falsch 
? Timer einschalten; Overflow...; globale Interuppts;

Gebt mir bitte einen kleinen Hinweis.....

MFG Robert

von holger (Gast)


Lesenswert?

>TIMSK |= (1<<TOIE0);
>sei();

>Da ich wenig Ahnung von der Materie habe nehme ich an das ich
>irgendwelche Einstellungen vergessen habe.... Oder was mache ich falsch
>? Timer einschalten; Overflow...; globale Interuppts;

Ohne Interruptroutine geht da gar nichts mehr.

>Gebt mir bitte einen kleinen Hinweis.....

Kompletten Code liefern und nicht irgendwelche Schnipsel.

von Robert P (Gast)


Lesenswert?

OK. Danke.

Das reichte schon als Denkanstoss. Wollte Zeile für Zeile erledigen und 
hatte folgendes :

ISR(TIMER0_OVF_vect){;}

noch garnicht drin.

Wie es aussieht was das der Fehler... Aber das werd ich morgen testen...

Ich geb dann nochmal Bescheid..

MFG

Robert

von Robert P (Gast)


Lesenswert?

Hab´s grad noch getestet.

Das war der Fehler. Also für alle die das gleiche Problem irgendwann 
einmal haben sollten:

Wenn man den Timer aktiviert, muß man ihn auch nutzen .

Also :

TCCR0 |= (1<<CS00); //Prescaler und einschalten
TIMSK |= (1<<TOIE0); //Timer Overflow
sei(); //globale Interupptfreigabe

nicht ohne

ISR(TIMER0_OVF_vect){;}// und dann noch sagen was er überhaupt machen 
soll...

Hoffe das hilft irgenwann mal jemanden.

Danke für die Hilfe

MFG Robert

von spess53 (Gast)


Lesenswert?

Hi

Nur TIMSK |= (1<<TOIE0); //Timer Overflow

funktioniert nicht ohne

ISR(TIMER0_OVF_vect){;}

Der Rest schon.

MfG Spess

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.