ATtiny45 Timer 0 Comp. Modus

#3299739
Lesenswert?

Hallo,

folgenden Code:
1
ISR (SIG_OUTPUT_COMPARE0A) // Zeit für ganzes Protukoll
2
{
3
PORTB |= (1<<PB4) ;
4
}
5

6

7
TCCR0B = (1<<CS10); //setzt den Prescaler 1 --> keine Teilung
8
OCR0A = 200;      //setzt den Vergleichswert
9
TIMSK = 1<<OCIE0A;  //Compare-Int aktivieren
10

11

12

13
  while(1)
14
  {
15
      asm("nop");
16
      PORTB &= ~(1<<PB4); //reset
17
  }

Die ISR wird immer in gleichen Abständen aufgerufen.
Unabhängig vom Wert im Vergleichsregister.

Habe ich noch irgendwas vergessen?
Gast #3299756
Lesenswert?

Schon allein die Struktur ist mittelprächtig.

In der Hauptschleife wird ständig der Pin auf low gesetzt und in der 
Unterbrechung einmalig kurz auf high.
Da bekommt man ja selbst mit dem Oszi, Probleme beim Hingucken.

Eine Kontrolle eines total zerrissenen Programms auf Richtigkeit ist 
nicht möglich. So sehe ich z.B. nirgendwo, ob Du die Unterbrechungen 
überhaupt eingeschaltet hast.

Funktioniert "SIG_OUTPUT_COMPARE0A" überhaupt noch - soweit ich weiß 
heißen die jetzt anders.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren