- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 3 von 3

Thema: Tiny24 tcnt1h

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.09.2008
    Ort
    Linz A
    Beiträge
    126

    Tiny24 tcnt1h

    Hallo allerseits!

    Ich werd nicht schlau ...

    Während einer ca. 5 Minuten Pause möchte ich eine LED langsam blinken lassen
    um anzuzeigen, dass der Timer1 läuft - das Programm also im Pausenmodus ist.
    T1 an sich läuft tadellos, tut was er soll ...

    Allerdings kann ich folgendes Problem nicht lösen:
    Ich lese TCNT1H in ein Register und möchte ein bestimmtes Bit zum Blinken auswerten.
    Nur blinkt da nichts!
    Bei TCNT1L funktioniert es einwandfrei, nur bei TCNT1H nicht!!
    Wo liegt hier der Hund begraben?

    Nachstehendes Progrämmchen dient nur zum Testen ...
    Alle paar Sekunden wechselt die Anzeige zwischen TCNT1L und TCNT1H.
    Beide werden in R16 eingelesen.

    Gruß Heinz

    ps: PA2 wegen einer existierenden Platine für T24 zum Testen, sonst egal.

    ;---------------------------------------------------------
    #include "tn24def.inc"
    .cseg
    .org $0000
    rjmp INIT
    .org $0008
    rjmp T1OVF
    ;---------------------------------------------------------
    INIT:
    ldi R16,LOW(RAMEND)
    out SPL,R16
    ldi R16,$0F ;all out
    out DDRA,R16
    ldi R16,1
    out TIMSK1,R16 ;T1 Ovf enable
    clr R16
    out TCNT1H,R16
    out TCNT1L,R16
    ldi R16,4 ;Prescaler /256
    out TCCR1B,R16 ;start T1
    sei
    ;-------------
    LOOPL:
    sbrc R17,0
    rjmp looph
    in R16,TCNT1L ;hier funktioniert jedes Bit
    sbrs R16,7 ;in diesem Fall nur Bit7, damit
    cbi PORTA,2 ;man das Blinken gut erkennen kann
    sbrc R16,7
    sbi PORTA,2
    rjmp loopl
    LOOPH:
    sbrs R17,0
    rjmp loopl
    in R16,TCNT1H ;hier blinkt's nie
    sbrs R16,2 ;egal welches Bit abgefragt wird
    cbi PORTA,2
    sbrc R16,2
    sbi PORTA,2
    rjmp looph
    ;-----------------------------------------------------
    T1OVF:
    in R20,SREG
    sbrc R17,0 ;skip if Bit0 off
    rjmp clrb0
    sbr R17,1
    rjmp t1end
    CLRB0:
    cbr R17,1
    T1END:
    out SREG,R20
    reti
    ;-----------------------------------------------------
    .EXIT
    Geändert von HeSt (30.11.2020 um 15:15 Uhr)

Ähnliche Themen

  1. PWM Tiny24
    Von walterk im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 27.12.2012, 18:53
  2. Stromverbrauch Tiny24 und RF12 Sleep Mode
    Von izaseba im Forum AVR Hardwarethemen
    Antworten: 4
    Letzter Beitrag: 13.02.2008, 20:49
  3. Tiny24/44/84 ISP - Welcher Pin ist SCK?
    Von OnkelTobi im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 06.09.2006, 01:00

Berechtigungen

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

12V Akku bauen