Forum: Mikrocontroller und Digitale Elektronik V-sync messen AVR mega 16 16Mhz


von R--- S. (rene66)


Lesenswert?

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.

von R--- S. (rene66)


Lesenswert?

schade schade keine antwort

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.