Timer0 überlauf

OP #1076328
Habe hier aus dem Forum das unten aufgeführte Programm und will es auf 
dem Tiny26 laufen lassen, nur löst der Interrupt beim Timerüberlauf 
nicht aus..wo ist hier der Fehler



.include"tn26def.inc"

.def temp = r16
.def leds = r17


.org 0x0000
  rjmp   main
.org OVF0addr
  rjmp  timer0_overflow

main:
    ldi temp,(RAMEND)
    out SP,temp

    ldi  temp,  0xFF
    out  DDRB,  temp

    ldi  leds,  0xFF

    ldi  temp,  0b00000001
    out  TCCR0,  temp

    ldi  temp,  0b00000001
    out  TIMSK,  temp

    sei

loop:  rjmp   loop


timer0_overflow:
    out  PORTB,  leds
    com  leds
    reti
Persönliche Seite
Ingo Laabs wrote:

> Habe hier aus dem Forum das unten aufgeführte Programm und will es auf
> dem Tiny26 laufen lassen, nur löst der Interrupt beim Timerüberlauf
> nicht aus..wo ist hier der Fehler
> ...
>     ldi  temp,  0b00000001
>     out  TIMSK,  temp

Das Bit TOIE0 ist zu setzen. Das Makro dafür steht in "tn26def.inc" und 
es wird so angewendet:

    ldi  temp,  (1<<TOIE0) ; 0b00000001
    out  TIMSK, temp

Die Werte für den Prescaler

>    ldi  temp,  0b00000001
>    out  TCCR0,  temp

habe ich nicht kontrolliert. Vom Sourcecode her könnte dort das gleiche 
Problem vorliegen. Lässt man die 0b00000001 dort stehen und simuliert 
man mit 4 Mhz im AVR Studio, geht PORTB nach 68,25 µs dauerhaft auf 
HIGH.
Gast
Versuch doch mal einen Vorteiler von 1024.

ldi temp, 0b00000101
out TCCR0, temp

Bei einem Vorteiler von 1 wirste die LED´s nich einmal flackern sehen.

Ansonsten probier mal Dein Programm im Simulator.

Mfg, tom.
OP
ich teste das Programm ja im Simulator nur wird bein Timerüberlauf die 
Interruptroutine nicht angesprungen .....und das war ja ursprünglich 
meine Frage. Mit dem Mega8 funktioniert die Sache im Simulator, nur wenn 
ich den Tiny26 im Simulator verwende nicht.
Gast
TOIEO das InterruptBit für Timer0 liegt auf bit1 im TIMSK, nicht auf 
bit0.
Deswegen hatte der Stefan Recht.

Entweder:
  ldi  temp,  (1<<TOIE0)
  out  TIMSK, temp

oder:
  ldi temp, 0b00000010
  out TIMSK, temp

Dann gehts.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.