wieder mal Timer Problem

Gast #572507
Lesenswert?
• ▲
▼
ich hab mit meinem ATMega16 einen ersten Timer programmiert:
1
volatile int8_t i=1;
2

3
int main (void)
4
{
5
   // 16 bit timer:   
6
   TCCR1B |= (1<<WGM12)|(0<<CS12)|(1<<CS11)|(0<<CS10);   // CTC + Prescaler 8 --> CPU/8
7
   OCR1A  = 10;      
8
   TIMSK |= (1<<OCIE1A);        //Output Compare Match A aktivieren               
9
   sei();                     
10

11
   while(1)
12
   {
13

14
   }
15
}
16

17
ISR (TIMER1_COMPA_vect)
18
{
19
   i=i*(-1);
20
   if (i==-1) { led1on(); }
21
   else { led1off(); }
22
}

ich bräuchte jetzt einen zweiten timer, der so ca alle 500ms nen 
interrupt giebt

kann mir da jemand weiterhelfen
Gast #572541
Lesenswert?
• ▲
▼
genau die befehle hab ich gesucht, problem war bei mir, dass ich nicht 
mit den registern in dem tutorial klar gekommen bin, da einige 
bezeichner davon veraltet sind bzw anders benannt sind

wozu ist eigentlich das compare match B, kann ich da bei meinem timer 
einen zweiten wert vergleichen, oder wird da ein anderer timer verwendet

wenn jemand mal ein gutest timer tutorial hat, dann wäre ich sehr 
dankbar
wie die timer funktionieren weiss ich ja, nur halt wie sie programmiert 
werden, sprich welche register werden genutzt, was muss ich 
einstellen...
da haperts
#572653
Lesenswert?
• ▲
▼
>wozu ist eigentlich das compare match B, kann ich da bei meinem timer
>einen zweiten wert vergleichen, oder wird da ein anderer timer verwendet

Ja, man hat 2 Vergleichswerte, wobei in manchen Betriebsarten (z.B. CTC) 
des Timers einer der beiden Werte auch als obere Grenze gesetzt wird 
(welcher von beiden, ist im Datenblatt beschrieben), wo dann der Timer 
auf 0 zrückgesetzt wird, oder die Zählrichtung umgekehrt wird.

Eigentlich (meines Wissens nach) sind die Tutorien auf einem recht 
aktuellen Stand...

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.