- LiFePO4 Speicher Test         
Ergebnis 1 bis 9 von 9

Thema: Timer0-Int: TOV0 wird nicht gesetzt

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.04.2005
    Ort
    Freiberg
    Alter
    41
    Beiträge
    311

    Timer0-Int: TOV0 wird nicht gesetzt

    Hallo zusammen,

    ich versuche mich mal mit den Grundlagen der ASM-Programmierung und bin auf ein Problem gestoßen. In Anlehnung an ein Video-Tutorial für ein atmega8 versuche ich mit einem atmega32 nun per Timer0-Overflow-Int eine LED auf dem RNControl 1.4 zu schalten. Der Code ist eigentlich copy&paste. Dennoch tut es nicht - weder im AVRstudio-Debugger, noch in Hardware. Im Debugger wird TOV0 trotz Overflow von TCNT0 nicht gesetzt (AVRstudio-Einstellung: Mask Interrupts While Stepping=false).

    Ich bin für jede Hilfe dankbar!

    Grüß
    NRicola

    Code:
    .include "m32def.inc"
    .org 0x000
    begin:
    ;--------------------------------------------------
    rjmp main           ; RESET External Pin, Power-on Reset, Brown-out Reset, Watchdog Reset, and JTAG AVR Reset
    reti                ; INT0 External Interrupt Request 0
    reti                ; INT1 External Interrupt Request 1
    reti                ; INT2 External Interrupt Request 2
    reti                ; TIMER2 COMP Timer/Counter2 Compare Match
    reti                ; TIMER2 OVF Timer/Counter2 Overflow
    reti                ; TIMER1 CAPT Timer/Counter1 Capture Event
    reti                ; TIMER1 COMPA Timer/Counter1 Compare Match A
    reti                ; TIMER1 COMPB Timer/Counter1 Compare Match B
    reti                ; TIMER1 OVF Timer/Counter1 Overflow
    reti                ; TIMER0 COMP Timer/Counter0 Compare Match
    rjmp timer_int      ; TIMER0 OVF Timer/Counter0 Overflow
    reti                ; SPI, STC Serial Transfer Complete
    reti                ; USART, RXC USART, Rx Complete
    reti                ; USART, UDRE USART Data Register Empty
    reti                ; USART, TXC USART, Tx Complete
    reti                ; ADC ADC Conversion Complete
    reti                ; EE_RDY EEPROM Ready
    reti                ; ANA_COMP Analog Comparator
    reti                ; TWI Two-wire Serial Interface
    reti                ; SPM_RDY Store Program Memory Ready
    ;--------------------------------------------------
    
    main:
    
    ldi    r16, high(RAMEND)
    out    SPH, r16
    ldi    r16, low(RAMEND)
    out    SPL, r16
    
    ldi    r16, 0b11111111      ; Ausgänge=1 Eingänge=0
    out    DDRC, r16            ; Ausgeben
    
    ldi    r16, 0x00
    out    PortC, r16
    
    ; Timer und Interrupt konfigurieren
    ldi    r16, 6              ; 8bit-Timer-Register vorladen
    out    TCNT0, r16          ; so sind nur 256-6 / (16MHz/64) = 1ms zu zählen 
    ldi    r16, 0b00000011     ; CS00 & CS01 setzen: Clock/64
    out    TCCR0, r16
    ldi    r16, 0b00000001     ; TOIE0 (Timer0-Overflow-Int) setzen 
    out    TIMSK, r16
    
    sei                        ; Interrupts aktivieren
    
    mainloop:
        nop
        rjmp   mainloop
    
    timer_int:
        rcall  LEDswitch
        ldi    r16, 6
        out    TCNT0, r16
        reti
    
    LEDswitch:
        in     r16, PortC
        ldi    r17, 0b10000000     ; Bit 7 (LED)
        eor    r16, r17            ; invertieren
        out    PortC, r16
        ret
    Geändert von NRicola (18.04.2016 um 20:24 Uhr)
    Gurken schmecken mir nicht, wenn sie Pelz haben!

Ähnliche Themen

  1. Timer triggert DMA, aber Overflow Flag wird nicht zurück gesetzt
    Von erik_wolfram im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 22.08.2014, 13:33
  2. Ausgang wird nicht richtig gesetzt
    Von TobiasBlome im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 18.09.2006, 21:02
  3. PORTD,4 wird nicht auf HIGH gesetzt
    Von Pitt1986 im Forum PIC Controller
    Antworten: 15
    Letzter Beitrag: 25.02.2006, 20:23
  4. Antworten: 8
    Letzter Beitrag: 18.05.2005, 22:21
  5. welches bit wird bei... gesetzt
    Von pebisoft im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 19.02.2005, 18:07

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress