Forum: Mikrocontroller und Digitale Elektronik Timer1 bei Atmega8 (KEIN OVERFLOW)


von Uprock M. (uprock)


Lesenswert?

Hallo

mein Problemm liegt daran, dass mit dem code kein interrupt durch 
overflow
kommt. Ich verwende Timer1, mode 14, ich bekomme aber kein TOV1 flag, 
kein overflow. Was koennte hier falsch sein?





.include "m8def.inc"

.org 0x000
         rjmp init

.org OC1Aaddr                   ; Output Compare2 Interrupt Vector 
Address
           rjmp comparetimer
.org OVF1addr                   ; Overflow2 Interrupt Vector Address
            rjmp timeroverflow
...
...
init:

      ldi r16, (0<<WGM10)|(1<<WGM11)
      out TCCR1A, r16

      ldi r16, (1<<WGM12)|(1<<WGM13)|(1<<CS10)
      out TCCR1B, r16


      ldi r16, (1<<OCIE1A)|(1<<TOIE1)
      out TIMSK, r16

      ldi r16,100
      out ICR1L, r16

      ldi r16,50
      out OCR1AL, r16

      sei
...
...

von Andreas W. (geier99)


Lesenswert?

Vor der Freigabe der ISR solltest Du die Interruptflags löschen.:

z.B.:

ldi r16, (1<<OCF1A) | (1<<TOIE1)
sts (TIFR+0x20),r16


Gruss Andi

von Karl H. (kbuchegg)


Lesenswert?

Ich denke, dass du im Modus 14 keinen Overflow Interrupt bekommst.
In diesem Modus fungiert das ICR1 Register als TOP Wert. Laut Doku zum 
ICF1 Interrupt Flag, wird in so einem Fall ein Input Capture Interrupt 
ausgelöst.
Du könntest dich mal an diesen Interrupt hängen.


Wenn deine Beobachtung auf Simulator-Läufen beruht, bedenke auch, dass 
der Simulator gerade in Bereich Timer/PWM so seine Fehler hat.

von Uprock M. (uprock)


Lesenswert?

> Wenn deine Beobachtung auf Simulator-Läufen beruht, bedenke auch, dass
> der Simulator gerade in Bereich Timer/PWM so seine Fehler hat.

Das koennte mich beruhigen, in Deutschland habe ich das Programm 
geschrieben, es hat vollkommen funktioniert , PWM habe ich mit dem Osci 
beobachtet und mit dem Simulator hat es auch geklappt. Ich habe es
aber vergessen auf stick zu kopieren , so musste ich in der Ukraine 
wieder das programm schreiben und nun hat mir meine Schwester 
funktionierendes Programm aus Deutschland per Mail geschikt und hier mit 
dem Simulator bekomme ich kein Interrupt, sind es moegliche Simulator 
Fehler???

von Herr M. (herrmueller)


Lesenswert?


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.