Timer Interrupt

Gast #70114
Lesenswert?

Hallo Gemeinde,
Manchmal scheint das Hirn zu blockieren. Ich kriege es doch gerade
nicht gebacken eine lauffähige Timer0 Overflow Routine zum laufen zu
bringen:

Service-Routine:
ovf0:  in status,SREG
  rcall keyin
  ldi temp,254    ;reload timer
  out TCNT0,temp
  out SREG,status
  reti
Wird während der INIT-Phase aufgerufen:

tcnt0init:
  ldi temp,254
  out TCNT0,temp
  ldi temp,0x02
  out TIMSK,temp
        sei
  ret

Interrupt-Routine wird nicht angesprungen. Warum?
Gast #70118
Lesenswert?

Du hast den Timer ja offenbar gar nicht gestartet, dazu mußt Du erst mal
das TCCR0-Register entsprechend laden (Modus und Prescaler).

Ich hab zwar grad nur das ATmega16-Datenblatt, aber ich vermute, das
wird beim 161 ähnlich sein.

MfG Olaf

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren