mikrocontroller.net

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


Autor: R--- S--- (rene66)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe das hier versucht.

       lds   templ,vtimeL_neu  ;aus neu wird alt
         lds   temph,vtimeH_neu
         sts   Vtimel_alt,templ
         sts   Vtimeh_alt,temph

         
;---Vtime messen und vergleichen----------------------------
               clr   templ             ;für normales V-Sync
               out   TCNT1H,templ
         out   TCNT1L,templ
wat01:         sbic  PinB,1
         rjmp  wat01
wat02:         sbis  PinB,1
               rjmp  wat02
         ldi   tempL, (0<<CS12)|(0<<CS11)|(1<<CS10)|(0<<WGM12) ; Start Timer1 mit ohne Vorteiler Systemtakt
               out   TCCR1B, tempL
wat03:         sbic  PinB,1
               rjmp  wat03      
               ldi   tempL, (0<<CS12)|(0<<CS11)|(0<<CS10)|(0<<WGM12) ; Start Timer1 mit ohne Vorteiler Systemtakt
               out   TCCR1B, tempL
         in    temph,TCNT1H
               in    tempL,TCNT1L
         sts   VTimel_neu,templ  ;alten Wert laden
               sts   VTimeh_neu,temph


               clr   templ          ; für negiertes Vsync
               out   TCNT1H,templ
         out   TCNT1L,templ
wat011:        sbis  PinB,1
         rjmp  wat011
wat021:         sbic  PinB,1
               rjmp  wat021
         ldi   tempL, (0<<CS12)|(0<<CS11)|(1<<CS10)|(0<<WGM12) ; Start Timer1 mit ohne Vorteiler Systemtakt
               out   TCCR1B, tempL
wat031:        sbis  PinB,1
               rjmp  wat031      
               ldi   tempL, (0<<CS12)|(0<<CS11)|(0<<CS10)|(0<<WGM12) ; Start Timer1 mit ohne Vorteiler Systemtakt
               out   TCCR1B, tempL
               in    puf1,TCNT1H
               in    puf0,TCNT1L

               lds   templ,VtimeL_neu         ;der grösseren Wert ermitteln
         lds   temph, VtimeH_neu
               cp    templ, puf0
         cpc   temph, puf1
               brsh  loe
         sts   VTimel_neu,puf0  ;alten Wert laden
               sts   VTimeh_neu,puf1

loe:       
                
        
        
         clr   templ
               out   TCNT1H,templ
         out   TCNT1L,templ

auswertung:    lds   templ,Vtimel_neu ;Vergleich
               lds   temph,Vtimeh_neu 
         lds   puf0, Vtimel_alt
         lds   puf1, Vtimeh_alt
         andi  puf0,0B11111000  ;"Runden um flattern zu beseitigen"
         andi  templ,0B11111000
         cp    templ,puf0
         cpc   temph,puf1
         breq ex
  
wechsel:       ldi templ,1  ; Flag setzten
         mov vstat,templ
T22:           sbi portD,7 ;endlosschleife zum test
         cbi portD,7
         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.

Autor: R--- S--- (rene66)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schade schade keine antwort

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.