Forum: Compiler & IDEs 16bit Timer mit Interrupt beim ATmega16


von Thorsten (Gast)


Lesenswert?

Hallo!
Ich stehe grade etwas auf dem Schlauch.

Ich habe ein kleines Programm geschrieben um einen Schrittmotor zu 
betreiben und habe bis jetzt immer einen 8Bit-Timer genutzt um dem 
Treibermodul die Taktimpulse per Interrupt zu geben.

Da der ATm16 aber auch 16Bit-Timer hat habe ich mir gedacht, um die 
Sache genauer zu machen, ich könnte diesen ja auch nutzen. Aber leider 
tut sich jetzt nichts mehr und ich finde den Fehler nicht.

Um jetzt nicht alles zu posten und den Beitrag unnötig lang zu machen 
poste ich die ansich wichtigen Ausschnitte.

// --- Interrupt

ISR(TIMER1_OVF_vect) {
  TCNT1 = Motor1_geschwindigkeit;
  Motor1_pulse(Motor1_richtung);
}

// --- Timer

TCNT1    =   Motor1_geschwindigkeit;
TCCR1A   |=  ((1<<0)|(1<<2)); // :1024
TIMSK   |=   _BV(TOIE1);

Danke!

von Karl H. (kbuchegg)


Lesenswert?

Thorsten wrote:
>
> TCNT1    =   Motor1_geschwindigkeit;
> TCCR1A   |=  ((1<<0)|(1<<2)); // :1024
> TIMSK   |=   _BV(TOIE1);
>

Die Vorteiler Einstellbits sind in TCCR1B

von Thorsten P. (chaosmaker)


Lesenswert?

Oh je! Danke, es funktioniert nun. =)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.