Atmega 32 Timer0 will nicht

#2122696
Lesenswert?

Eine der wichtigsten Regeln im Forum:

Zeige nach Möglichkeit immer vollständigen Code!

Warum?

erstens ist das für dich am einfachsten. Du musst nichts ausschneiden
zweitens ist es für uns am einfachsten. Wir müssen nicht blöd nachfragen
drittens sitzt der Fehler meistens dort, wo du ihn nicht vermutest. Denn 
wenn er dort sitzen würde, dann hättest du ihn selber auch gesehen.
viertens können wir dann im Zweifelsfall den Code auch mal durch den 
Compiler jagen und ihn sich in Aktion ansehen.
Gast #2122769
Lesenswert?

Ok es funktioniert doch. Nur nun habe ich ein anderes Problem. Egal wie 
klein ich OCR0 setzte. Ich bekomme keinen Impuls kürzer als 2µs hin. In 
der ISR schalte ich nur einen Pin um:
1
PORTC ^= (1<<PC7);
.
Gast #2122779
Lesenswert?

Hi

>Ok es funktioniert doch. Nur nun habe ich ein anderes Problem. Egal wie
>klein ich OCR0 setzte. Ich bekomme keinen Impuls kürzer als 2µs hin. In
>der ISR schalte ich nur einen Pin um:

>PORTC ^= (1<<PC7);

Das wundert dich? Sieh dir mal den Assemblercode davon an. Mit welcher 
Taktfrequenz läuft dein AVR?

MfG Spess
Gast #2122782
Lesenswert?

Er läuft mit 16MHz. Bei einem OCR0 von 15 sollte die ISR ja alle 1µs 
aufgerufen werden. Dazu habe ich mal testweise in der ISR eine Variable 
bis 20 hochgezählt, und dann den PIN umgeschalten. Da war der Impuls 
50µs lang. Aber vermutlich braucht der Vergleich auch zu viele Takte.

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