Forum: Compiler & IDEs 16 Bit TIMER ATMega2560


von student (Gast)


Lesenswert?

hallo leute,

es geht um den timer im 16-Bit Modus.

mein code bisher:
1
  TCCR4A = (1<<CS40) | (1<<WGM42); // kein prescaler und CTC-Modus aktiviert
2
  OCR4A = 8000; // Vergleichswert
3
  TIMSK4 = (1<<OCIE4A); // CTC-Interrupt erlauben
4
  sei(); // globale Interrupts erlauben 
5
6
...
7
8
ISR(TIMER4_COMPA_vect)
9
{
10
PORTD = (1<<PD3);
11
... weiterer code ...
12
PORTD = ~(1<<PD3);
13
}

ich möchte, dass mein interrupt nach 1ms permanent auslöst. zu anfang 
des interrupts setze ich einen pin auf high und am nach der routine 
wieder auf 0.
leider funktioniert es nicht. am pin messe ich die ganze zeit 0. am 
oszilloskop habe ich die zeit schon geändert, sodass man im 
mikrosekundenbereich ist. trotzdem sieht man nichts.

ist etwas an meinen einstellungen falsch?

von restfet (Gast)


Lesenswert?

globale interrupts sind erlaubt?

von restfet (Gast)


Lesenswert?

ach, blödsinn, habs übersehn...

von Stefan E. (sternst)


Lesenswert?

1
TCCR4A = (1<<CS40) | (1<<WGM42); // kein prescaler und CTC-Modus aktiviert
Nö.
Also läuft der Timer gar nicht, und kann somit auch keine Interrupts 
generieren.

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.