Forum: Mikrocontroller und Digitale Elektronik AVR Simulator probleme mit Timer


von Michael G. (mg800)


Lesenswert?

Liebe Forenmitglieder,
Ich habe ein kleines Problem mit dem AVR Simulator. Ich will den TIMER 1 
eines ATMega 16 in den Compare Betrieb bringen und einen Interrupt bei 
Match A erlauben. Wenn ich nun TCCR1B und TIMSK beschreibe für die 
Einstellungen gibt es keine Probleme. Beim schreiben auf TCCR1A passiert 
gar nix. Wer übernimmt das gesetzte bit FOC1A nicht sprich der Simulator 
zeigt es in der IO Register Übersicht als LOW an. Entweder liegt es 
tatsächlich am Simulator oder ich habe in fehler im Lising :

      in r16,TCCR1B
      ori r16,1<<WGM12 | 1<<CS11 ;AVR Takt/8 + CTC modus
      out TCCR1B,r16

      in r16,TCCR1A
      ori r16,1<<FOC1A ;Inerrupt auslösen bei MATCH A
      out TCCR1A,r16

      in r16,TIMSK
      ori r16,1<<OCIE1A ;Compare Interrupt erlauben
      out TIMSK,r16

Das wäre der init Teil. Kann mir jemand Helfen.

Mfg mg800

von Martin (Gast)


Lesenswert?

Du musst die COM-Bits entsprechend setzen, damit FOC eine Wirkung hat 
bzw. nach high schaltet.

von spess53 (Gast)


Lesenswert?

Hi

>      in r16,TCCR1A
>      ori r16,1<<FOC1A ;Inerrupt auslösen bei MATCH A
>      out TCCR1A,r16

Bist du sicher, das FOC1A das macht, was du beabsichtigst?

Datenblatt:

The FOC1A/FOC1B bits are only active when the WGM13:0 bits specifies a 
non-PWM mode.
...
A FOC1A/FOC1B strobe will not generate any interrupt nor will it clear 
the timer in Clear Timer on Compare match (CTC) mode using OCR1A as TOP.

MfG Spess

von Michael G. (mg800)


Lesenswert?

Vielen Dank. Ich hab einfach keine Interrupt bekommen weil die 
Interrupts global gesperrt waren und mit FOC1A habt ihr auch recht. Es 
hat erst Funktion wenn WGM13 gesetzt ist. Habs wohl einfach überlesen.

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.