Forum: Mikrocontroller und Digitale Elektronik Timer2 ohne Interrupt 16 Bit Zahl


von R--- S. (rene66)


Lesenswert?

Hallo,

ich erfasse mit Timer0 die Zeit zwischen zwei High Flanken mit einem 
Interrupt der dann bei Timer0überlauf eine Varable hochzält.
Der wert aus dem Timer Register und der Variablen ergeben dann das 
Ergebniss.
Dann muß ich aber in einem anderen Interrupt genau diese Zeit 
"wiedergeben"
Port C1 an Zeit Port C1 aus das aber auch mit Timer0 ohne Interrupt und 
als 16 Bit Wert und das möglichst ganau. Momantan habe ich bei 16Mhz 
Taktfrequenz eine Abweichung von ca. 15 uS zum geforderten wert die 
Abweichung wird umso grösser je grösser der am anfang erfasste Wert ist.
Was sollte ich anders machen?

hier der betreffende Code:
1
VZ:           lds  tempH,vorzeitH
2
Ltime13:      lds  tempL,vorzeitL
3
vzeit23:      out  OCR2,templ        ;Timer mit Match L Wert laden
4
        clr  templ
5
        out  TCNT2,templ       ; 
6
    
7
8
wtt:          ldi  tempL, (0<<CS22)|(0<<CS21)|(1<<CS20)
9
        out  TCCR2, tempL          ; Timer Start nach Match wieder von vorn
10
vzeit33:      in   templ,TIFR
11
        andi templ,0b10000000
12
        sbrs templ,OCF2             ;OCF0
13
        rjmp vzeit33
14
        ori  templ,(1<<OCF2)     
15
        out  TIFR,templ
16
        cpi  temph,0
17
        breq out_tim03
18
        ldi  templ,0xff
19
        dec  temph
20
        rjmp vzeit23
21
out_tim03:    ldi  tempL, (0<<CS22)|(0<<CS21)|(0<<CS20) ; Timer Stop
22
        out  TCCR2, templ

Mfg
René

von R--- S. (rene66)


Lesenswert?

Timer2 nicht Timer0

von Falk B. (falk)


Lesenswert?

@ René Schink (rene66)

>Dann muß ich aber in einem anderen Interrupt genau diese Zeit
>"wiedergeben"

na dann mach das doch einfach über Variablen im RAM.

>Port C1 an Zeit Port C1 aus das aber auch mit Timer0 ohne Interrupt und
>als 16 Bit Wert und das möglichst ganau. Momantan habe ich bei 16Mhz

Hää?
Formulier das mal sinnvoll.

Forum-Fragenformulierung

MFG
Falk

von R--- S. (rene66)


Lesenswert?

Hallo,

Sorry habe mein Problem dann doch mit einem IR und einer Variablen 
gelöst.

Mfg

René

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.