Forum: Mikrocontroller und Digitale Elektronik AVR ATmega8L Timer2 CTC wird nicht korrekt initialisiert/behandelt


von Sören K. (burnersk)


Angehängte Dateien:

Lesenswert?

Hallo,

ich bin gerade dabei mich mit meinem neuem myAVR Board MK1 LPT vertraut 
zu machen. Nun war der Timer dran, welche alle Millisekunde einen 
Interrupt auslösen soll.
Die erste Idee war, dass ich einen an PC0 angeschlossenen Summer 
ansteuert wollte, nun versuche ich gar verzweifelt überhaupt den 
Interrupt auszulösen.

Es wäre schön, wenn sich jemand meinen Code einmal kurz ansehen könnte.

von Hubert G. (hubertg)


Lesenswert?

Ich bekomme diesen Warning  ../Allg_Test.c:122: warning: 
'SIG_SIG_OVERFLOW2' appears to be a misspelled signal handler
Sollte heissen  ISR(TIMER2_OVF_vect)

Das heisst du solltest dir im klaren sein, willst du ein Overflow oder 
ein Comparematch.
Port umschalten geht auch mit PORTC ^= (1<<PC0);

von Sören K. (burnersk)


Lesenswert?

Hi Hubert,

Hubert G. schrieb:
> Ich bekomme diesen Warning  ../Allg_Test.c:122: warning:
> 'SIG_SIG_OVERFLOW2' appears to be a misspelled signal handler
> Sollte heissen  ISR(TIMER2_OVF_vect)
1
ISR(TIMER2_OVF_vect)
 hatte ich zu Anfang auch versucht. Nur da kam bei mir ein Error von 
wegen _vector(3) undefiniert. Deine warning bekomme ich nicht. Komisch, 
hab OpenSuSE/11.1, cross-avr-binutils/2.19, cross-avr-gcc/4.1.3, 
avr-libc/1.6.1 und avrdude/5.5.

> Das heisst du solltest dir im klaren sein, willst du ein Overflow oder
> ein Comparematch.
> Port umschalten geht auch mit PORTC ^= (1<<PC0);
Ich wollte eigentlich CompareMatch.

von Hubert G. (hubertg)


Lesenswert?

Ich nehme mal an er mault auch wegen dem SIG_SIG, das gehörte auch in 
der alten Version nicht. Einmal SIG genügt.
Sonst gehört dann

TIMSK |= _BV(OCIE2);

SIGNAL(SIG_OUTPUT_COMPARE2)

Das ist aber sicher nicht die neueste Version GCC.

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.