Mikrocontroller und Digitale Elektronik
›
Thread
V-sync messen AVR mega 16 16Mhz
RS
R--- S.
(rene66)
08.06.2008 10:55
#890111
Hallo,
habe das hier versucht. 1 lds templ,vtimeL_neu ;aus neu wird alt
2 lds temph,vtimeH_neu
3 sts Vtimel_alt,templ
4 sts Vtimeh_alt,temph
5
6
7 ;---Vtime messen und vergleichen----------------------------
8 clr templ ;für normales V-Sync
9 out TCNT1H,templ
10 out TCNT1L,templ
11 wat01: sbic PinB,1
12 rjmp wat01
13 wat02: sbis PinB,1
14 rjmp wat02
15 ldi tempL, (0<<CS12)|(0<<CS11)|(1<<CS10)|(0<<WGM12) ; Start Timer1 mit ohne Vorteiler Systemtakt
16 out TCCR1B, tempL
17 wat03: sbic PinB,1
18 rjmp wat03
19 ldi tempL, (0<<CS12)|(0<<CS11)|(0<<CS10)|(0<<WGM12) ; Start Timer1 mit ohne Vorteiler Systemtakt
20 out TCCR1B, tempL
21 in temph,TCNT1H
22 in tempL,TCNT1L
23 sts VTimel_neu,templ ;alten Wert laden
24 sts VTimeh_neu,temph
25
26
27 clr templ ; für negiertes Vsync
28 out TCNT1H,templ
29 out TCNT1L,templ
30 wat011: sbis PinB,1
31 rjmp wat011
32 wat021: sbic PinB,1
33 rjmp wat021
34 ldi tempL, (0<<CS12)|(0<<CS11)|(1<<CS10)|(0<<WGM12) ; Start Timer1 mit ohne Vorteiler Systemtakt
35 out TCCR1B, tempL
36 wat031: sbis PinB,1
37 rjmp wat031
38 ldi tempL, (0<<CS12)|(0<<CS11)|(0<<CS10)|(0<<WGM12) ; Start Timer1 mit ohne Vorteiler Systemtakt
39 out TCCR1B, tempL
40 in puf1,TCNT1H
41 in puf0,TCNT1L
42
43 lds templ,VtimeL_neu ;der grösseren Wert ermitteln
44 lds temph, VtimeH_neu
45 cp templ, puf0
46 cpc temph, puf1
47 brsh loe
48 sts VTimel_neu,puf0 ;alten Wert laden
49 sts VTimeh_neu,puf1
50
51 loe:
52
53
54
55 clr templ
56 out TCNT1H,templ
57 out TCNT1L,templ
58
59 auswertung: lds templ,Vtimel_neu ;Vergleich
60 lds temph,Vtimeh_neu
61 lds puf0, Vtimel_alt
62 lds puf1, Vtimeh_alt
63 andi puf0,0B11111000 ;"Runden um flattern zu beseitigen"
64 andi templ,0B11111000
65 cp templ,puf0
66 cpc temph,puf1
67 breq ex
68
69 wechsel: ldi templ,1 ; Flag setzten
70 mov vstat,templ
71 T22: sbi portD,7 ;endlosschleife zum test
72 cbi portD,7
73 rjmp T22
Vielleicht können die Profis mal drüber sehen.
Ich möchte gern den V-Sync Signal in der länge erfasse Bei
unterschiedlichen auflösungen "dreht" sich das Signal bzw. wird negiert.
Vsync liegt direkt an Port B Pin 1. Ich versuche jetzt mit den Code eine
Veränderung zu messen und
dann ein Flag zus setzten aber leider tut es nicht das was es soll. Im
Simulator schon aber in der Praxis nicht.
RS
R--- S.
(rene66)
08.06.2008 16:52
#890336
schade schade keine antwort
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.
Noch kein Account?
Die Registrierung ist kostenlos und dauert nur eine Minute.
Jetzt registrieren