Zitat Zitat von Saturas077 Beitrag anzeigen
When the SREG I-bit, TOIE0 (Timer/Counter0 Overflow
Interrupt Enable), and TOV0 are set (one), the Timer/Counter0 Overflow interrupt is executed.
Genau dieser Zustand tritt auch in der Simulation von Atmega 6.2 ein.
Allerdings wird dann nicht die Routine ausgeführt,es wird nichts zurück gesetzt...
Was soll Atmega 6.2 sein? Was soll den das Programm machen und was meinst Du mit "es wird nichts zurück gesetzt..."?

Ich habe keinen Simulator für Dein Programm installiert und bin nur gedanklich durchgegangen:
Meiner Meinung nach sollte die ISR schon ausgeführt werden allerdings wird PORTB nicht auf Ausgang geschaltet und die Konfiguration von Interrupt und Vorteiler scheint mir eher zufällig zu klappen.
Hab Deinen Code kopiert und mit weiteren Kommentaren versehen:
Code:
        .include "m8def.inc"

        rjmp main ; Reset Handler
        reti ; IRQ0 Handler
        reti ; IRQ1 Handler
        reti ; Timer2 Compare Handler
        reti ; Timer2 Overflow Handler
        reti ; Timer1 Capture Handler
        reti ; Timer1 CompareA Handler
        reti ; Timer1 CompareB Handler
        reti ; Timer1 Overflow Handler
        rjmp interrupt ; Timer0 Overflow Handler
        reti ; SPI Transfer Complete Handler
        reti ; USART RX Complete Handler
        reti ; UDR Empty Handler
        reti ; USART TX Complete Handler
        reti ; ADC Conversion Complete Handler
        reti ; EEPROM Ready Handler
        reti ; Analog Comparator Handler
        reti ; Two-wire Serial Interface Handler
        reti ; Store Program Memory Ready Handler

        main:
                ;Initializiere Stackpointer

                ldi r17, HIGH(RAMEND)
                out SPH, r17
                ldi r17, LOW(RAMEND)
                out SPL, r17
                sei

                ldi r17, 0xFF    ;setze B als Ausgang             (alle Bits in r17 werden gesetzt)
                out DDRB, r16                                    (r16 ist nicht initialisiert und wird defaultmäßig 0x00 enthalten
                                                                          Ausgabe nach DDRB wird keinen einen Effekt haben, PORTB bleibt auf Eingang)

                ldi r16, 0x01    ; setze Pin 1 als High.          (Bit 0 in R16 wird gesetzt)

                ldi r17, (1<<CS00) ; Setze Vorteiler             (Bit 0 in r17 wird gesetzt, alle anderen gelöscht)
                out TCCR0, r16                                   (r16 soll den Vorteiler setzen? Soll nicht r17 nach TCCR0 ausgegeben werden?)
                ldi r17, (1<<TOIE0) ; Setze Overflow Interrupt   (Bitnummer von TOIE0 wird in r17 gesetzt - Maske für TIMSK?) 
                out TIMSK, r16                                   (r16 wird nach TIMSK geschrieben. Sollte das nicht r17 sein?)

        loop:
                rjmp loop ; Ewiger Loop

        interrupt:
                out PORTB, r16                                   (r16 hat beim ersten interrupt noch Bit 0 gesetzt
                                                                          und schaltet hier nur den Pullup für PB0 ein, da PORTB noch auf
                                                                          defaultmaessigem Eingang ist, siehe oben)
                                                                         (beim zweiten Interrupt wird Pullup für PB0 wieder ausgeschaltet und
                                                                          und für alle anderen Pins auf PORTB eingeschaltet)
                                                                         (Nur die Pullups werden getoggelt wg. nachfolgendem COM r16) 
                com r16                                          (alle Bits in R16 werden invertiert und SREG verändert)
                reti
Gruß
Searcher