Atmega 32 Timer1 output compare B match

OP #2388892
Lesenswert?
• ▲
▼
Hallo zusammen,

könnt ihr mir bitte sagen was ich an dem 16 bit timer noch nicht 
verstanden habe?

Mein Ziel ist es einfach nach einem Compare Match event eine LED an 
PORTC toggeln zu lassen.

Ich habe habe dazu Com B verwendet, einfach so.

hier ist mein Code, es tut sich an der LED leider nichts.

Herzlichsten Dank und viele Grüße,

Matthias.



#include <avr/io.h>
#include <avr/interrupt.h>

uint16_t result;

ISR(TIMER1_COMPB_vect)
{
PORTC^=(1<<PC0);
}



int main(void)
{
DDRC=0xff;
PORTC=0x00;

 DDRD = 0xff;              // PORT D ist Ausgang
  PORTD = 0x00;



TCCR1B |= (1<<CS12) | (1<<CS10);  //precaler auf 1024 = 15 
overflows/Sekunde
TIMSK |= (1<<OCIE1B);  //timer1 output compare B Match Interrupt enable 
OCF1B flag in TIFR must set
TIFR |= (1<<OCF1B);    // output compare B Match flag is set

OCR1B=60000; //Vergleichswert



TCCR1B |= (1<<WGM12);  //CTC modus

sei();   //Gobale Interruptbehandlung ein
while(1)

return 0;


}
OP #2391198
Lesenswert?
• ▲
▼
spess53 schrieb:
> Hi
>
> Du hast CTC mit OCR1A als Top eingestellt. D.h. der Timer läuft bis zu
> dem Wert von OCR1A und fängt dann von Null wieder an. Und jetzt überlege
> mal.
>
> MfG Spess


Hallo Spess,

vielen Dank für Deinen Tipp.

HAbe CTC auf

  TCCR1B =  (1<<CS10)  //  no Prescaling 16ms bei 4MHZ   30.000 vom 
65.536 = 1/2.2 Teil vom   16ms  -->7,32ms
          | (1<<WGM12)
        | (1<<WGM13); //12 und 13 für CTC compare B


gestellt.

TIMSK |= (1<<OCIE1B);    //Timer Output compare B Match interrupt enable


  ICR1=30000; //legt den Top Wert für Comp B fest nicht  //OCR1B 
=30000;


jetzt läuft es.

Ein schönes Wochenende wünsche ich.

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.