Hallo zusammen, ich versuche gerade den Timer 0 auf einem ATtiny2313 zum laufen zu kriegen und damit einen Interrupt auszulösen. Ich kann beim Debuggen im AVR Studio allerdings nicht erkennen, das der Timer läuft. Der Counter wird nicht hochgezählt. Der Attiny ist auf 4 Mhz (zum Versuch auch mal 16 Mhz) im AVR Studio eingestellt. Hier die Code-Ausschnitte, die, soweit ich das laut Dokus verstanden habe, laufen sollten: #include..... #include "avr/interrupt.h" ISR(TIMER0_OVF_vect) { asm volatile("nop") } int main(void) { TCCR0A |= (1 << CS00); TIMSK |= (1 << TOIE1); while (1){ asm volatile("nop"); } return 0; } was mache ich falsch? lg Sammy
sammy wrote:
> was mache ich falsch?
Unter anderem fehlt eine globale Freigabe für die Interrupt-Bearbeitung
mittels sei(), ohne die überhaupt kein Interrupt ausgelöst werden
kann.
oh ja, stimmt. In meinem "richtigen" Programm habe ich das drin, nur gerade beim abtippen vergessen. lg Sammy
Hallo, Dein Timer läuft nicht, weil TCCR0B den Wert "0" hat. Anstelle von "TCCR0A |= (1 << CS00);" meinst Du wahrscheinlich TCCR0B, denn "CS00" gehört zu TCCR0B. Dein letzter Kommentar zeigt, dass Du hier am besten immer Code durch Copy&Paste einstellst -- nicht durch abtippen. Gruß risu
@ sammy (Gast) >In meinem "richtigen" Programm habe ich das drin, nur gerade beim >abtippen vergessen. Sowas lass man GANZ schnell bleiben. Abtippen oder "aus dem Gedächtnis aufschreiben" von Quelltexten ist der letzte Humbug. 1:1 reinkopieren bzw. gleich den vollständigen Quelltext als Anhang senden. Denn es zählt im Fehlerfall jedes kleine Semikolon (oder auch dessen Abwesenheit). MFG Falk
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.