mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Timer3 bei ATmega128 konfigurieren


Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich versuche den Timer3 des ATmega so zu konfigurieren, dass er keine 
Aktionen an den OCR3n Pins ausgibt, sondern nur intern hochzählt und 
periodisch einen software Interrupt auslöst...aber ich komm nicht drauf 
warum das bei mir nicht klappt.

Mein Code:
  OCR3A = 20000;                 //Maximum value for TCNT3

  TCCR3A &= ~( (1<<COM3A1) | (1<<COM3A0) ); //Normal port operation, OC3A disconnected
  TCCR3A |= (1<<WGM32);      //CTC mode
  TCCR3B |= (1<<CS31);                  //Prescaler 8 
  TIMSK |= (1<<OCIE3A);             //Interrupts enable

...

ISR(TIMER3_COMPA_vect)
{
  if(PINB & (1<<PB6))
        PORTB &= ~(1<<PB6);
  else
    PORTB |= (1<<PB6);
}

Wo ist da der Haken?

Also zuerst setze ich den Maximalwert, dann lösche ich (explizit) die 
Bits COM3A1 und COM3A0, damit der OC3A-Pin nicht ins Timer-geschehen 
eingreift. Mit WGM32 auf 1 aktiviere ich noch den CTC Mode mit 
Maximalwert für TCNT bei OCR3A. Anschließend noch der Prescaler und das 
Interrupt aktivieren.

Ich sehe da einfach keinen Fehler.

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich wollte sagen: Der Timer des ATmega128 !

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh man, ich sollte wirklich eine Pause einlegen...
Ich habe ja ganz vergessen was bei mir nicht geht:

Also ich messe an dem Pin, der eigentlich durch den SW-Interrupt toggeln 
soll keine Aktion. Er geht anscheinend nicht in die Routine rein...auch 
wenn ich andere Pins verwende bleiben diese tot.

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sei();  <--- vergessen?!?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.