Timer Problem bei Wechsel von mega8 zu mega168

OP #2254413
Lesenswert?
• ▲
▼
Hi,
ich versuche verzweifelt die Servo Lib von Julian von Mendel ( 
http://derjulian.net/mikrocontroller ) auf einem Atmega168 ans laufen zu 
bekommen.
Folgender Code steht orginal drin und funktioniert mit einem Atmega8 mit 
internem 8Mhz Takt:
1
TCNT1  = 0 - 16000;
2
TCCR1A = 0;
3
TCCR1B = 0x01;
4
TIMSK |=  _BV(TOIE2) | _BV(TOIE1);
Die ISR sicht so aus:
1
ISR(SIG_OVERFLOW1)
Nun habe ich, weil der Atmega168 den TIMSK nicht kennt. die beiden 
Datenblaetter verglichen und meiner Meinung nach muss nur
1
TIMSK |=  _BV(TOIE2) | _BV(TOIE1);
mit
1
TIMSK1 |=  _BV(TOIE2) | _BV(TOIE1);
getauscht werden.
Der Takt vom Atmega168 ist auf intern 8Mhz eingestellt. Clock/8 (CKDIV8) 
habe ich auch aus, damit er mit 8Mhz laeuft.
Es tut sich nix. Absolut garnix.

Was ist falsch?
#2254548
Lesenswert?
• ▲
▼
Stephan Kempa schrieb:
> Was ist falsch?

>ISR(SIG_OVERFLOW1)

ISR(TIMER1_OVF_vect)
{
}

Die ISR funktioniert mit "SIG..." nicht mehr bei den neuen Controllern.
Der Compiler meckert das auch an.


Die ganze Art der Initialisierung ist etwas veraltet.

TCNT1  = 0 - 16000;
TCCR1A = 0;
TCCR1B = 0x01;
Das ist OK. Sollte man aber der Übersichtlichkeit halber auch so 
schreiben

TCCR1B = (1 << CS10); Das sieht man gleich, was Sache ist.


Das hast du auch (fast) richtig erkannt
TIMSK |=  _BV(TOIE2) | _BV(TOIE1);

Aus TIMSK wird TIMSK1:

TIMSK1 |= (1 << TOIE1);

TOIE1 ist definert als "0", ebenso TOIE2, gilt aber für Timer2.
Schadet an dieser Stelle aber auch nicht.


mfg.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.