Register ICR1

Gast #2743508
void Timer1Init(void)
{
TCCR1A = 0x00;
TIMSK1 = 0x07;
EIMSK |= 0x01;
EICRA |= 0x03;
/*
OCR1A= 20000;
OCR1B= 20000;
ICR1 = 0x4e20;
*/
TCCR1B = 0x02;
}
Kann mir jmd sagen, wieso die hier auskommentierten Register für einen 
Phasenanschnitt/korrekten Ablauf des Timer1 im Quellcode vorhanden sein 
müssen? Der ICR1 macht mir zu schaffen. uC=ATMega 2561

Danke und Gruß
Gast
Das stand deswegen in Kommentaren, damit gleich zu sehen ist, worauf ich 
Bezug nehme, ergo im Quellcode stehts nicht in Kommentaren. Der 
Quellcode ist ebenfalls von mir. Wenn ich das rausnehme, geht der 
Phasenanschnitt nicht.
Und du glaubst, wir alle warten jetzt nur darauf, raussuchen zu dürfen, 
welche Interrupts du hier
TIMSK1 = 0x07;
alle freigibst.
Benutze die Bitnamen, dann sieht man auch was.


TCCR1A = 0x00;
TCCR1B = 0x02;
Das dürften die Prescaler BIts sein. D.h. Spezialmodus ist schon mal 
keiner aktiv.

Aber ehrlich gesagt, hab ich jetzt keine Lust, mir im Datenblatt die 
Bits zusammenzusuchen.
Gast
TIMSK = 0x07;
-->TOIE1 & OCIE1A & OCIE1B sind gesetzt
TCCR1A = 0x00;
-->Normales Hochzählen
EIMSK = 0x01;
-->Interrupt 0 erlauben
EICRA
-->erkennt steigende Flanke
TCCR1B
--> 8-Prescale & Start Timer

hätte ich gewusst, dass man sämtliche Register kennen muss, um mir den 
ICR1 zu erklären, hätte ich das im Vorfeld getan.
Gast
Hi

>hätte ich gewusst, dass man sämtliche Register kennen muss, um mir den
>ICR1 zu erklären, hätte ich das im Vorfeld getan.

Du sollst nichts erklären, sondern es richtig schreiben:

Nicht     TIMSK = 0x07;
sondern   TIMSK = 1<<TOIE1 | 1<<OCIE1A | 1<<OCIE1B

Da weiß jeder ohne Kommentar was Fakt ist und du weißt auch in einem 
halben Jahr was du dort gemacht hast ohne im Datenblatt nachzusehen.

MfG Spess
Gast
spess53 schrieb:
> Hi
>
>>hätte ich gewusst, dass man sämtliche Register kennen muss, um mir den
>>ICR1 zu erklären, hätte ich das im Vorfeld getan.
>
> Du sollst nichts erklären, sondern es richtig schreiben:
>
> Nicht     TIMSK = 0x07;
> sondern   TIMSK = 1<<TOIE1 | 1<<OCIE1A | 1<<OCIE1B
>
> Da weiß jeder ohne Kommentar was Fakt ist und du weißt auch in einem
> halben Jahr was du dort gemacht hast ohne im Datenblatt nachzusehen.
>
> MfG Spess

Gut, akzeptiert.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.