- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 20

Thema: Bildmuster-Generator Programm mit BascomAVR möglich

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #18
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.07.2008
    Ort
    Villingen-Schwenningen
    Beiträge
    143
    Hallo Harry,
    vielen Dank für deine umfangreiche Frage. Ich werde mal versuchen zu beantworten was geht. Manches verstehe ich aber auch noch nicht. Dazu später.

    Das Hex-File zu meinem Bildmuster-Generator ist für den ATMega88 mit 20MHz Quarz-Takt compiliert worden.
    Das Hexfile kann also nicht auf einen beliebigen anderen Controller eingespielt werden. Man könnte allerdings das Programm auf einen anderen Controller auslegen/anpassen und neu kompilieren. Der Aufwand (vermutlich aufwendiger) ist allerdings nicht abschätzbar, da kann es böse Überraschungen geben. Voraussetzung für ein solches Vorhaben ist allerdings ein Controller, der 20MHz getaktet werden kann, da alle Zeitkritischen Routinen darauf ausgelegt sind.

    Ich denke mit den Syng-Signalen meinst du Sync-Signale (mit C geschrieben). Das hat mich erst etwas verwirrt.
    Wenn du erst mal H-Sync und V-Sync Signale generiert hast, müssen die nur noch gemischt werden. Das Mischen erreicht man z.B. durch Toggeln eines Ports.
    Wie man das im Einzelnen genau macht würde den Rahmen hier sprengen.

    Das gleiche gilt für das Jittern. Aber kurz zur Erklärung. Der ein H-Sync Impuls wird per Hardware-PWM erzeugt. Sobald dieses Signal ausgegeben wird, muss nach einer bestimmten Zeit das Zeilensignal folgen. Ist das Timing zwischen H-Sync und Start der Zeienausgabe nicht exakt in jeder Zeile gleich, beginnt das Bild zu jittern. Jittern ist also der Zeitliche Versatz zwischen Sync-Impuls und dem Beginn des Zeilensignals, wenn er nicht immer gleich ist. Ursache ist hier das Assembler selbst, welches für unterschiedliche Instruktionen unterschiedlich lange braucht. Daher kommt der Versatz!
    Um das auszugleichen gibt es mehrere Ansätze. Entweder die Zeilenausgabe vorbereiten und bevor bevor die Zeilenausgabe los geht den Controller schlafen legen, Der Zeitpunkt, an dem die Zeile beginnen soll wird durch einen Timer-Interrupt bestimmt, der den Controller synchron aufweckt. Das Programm startet dann direkt mit der Zeilenausgabe nach dem aufwecken. Also immer Zeitsynchron zum H-Sync.

    Ich habe das anders gelöst. Da der Timer als Fast-PWM konfiguriert ist, wird der Timer dadurch auch auf 0 gesetzt, während das Sync-Signal ausgegeben wird. Ich nutze die Zeit, um die Zeilenausgabe vorzubereiten, Pointer berechen etc. Dann rufe ich meine Taktausgleichroutine auf, die das Jittern beseitigt. Diese liest eigentlich nur noch den Timer aus und weis somit die bereits verstrichene Zeit und kann die fehlende Zeit bis Zeilenausgabe bestimmen. Dies wird als Offset für einen Jump über NOPs verwendet, wodurch die Taktausgleichroutine immer Jitterfrei verlassen wird.

    Wenn ich dich richtig verstehe brauchst du nur einen Generator, der dir ein Composite-Sync liefert? Also reine TTL-Pegel?

    Nun das sollte nicht so schwierig sein. Welches Sync jittert denn bei dir? Horizontal oder Vertikal? Oder möchtest du mir man ein Code-Schnipsel zur Ansicht geben oder hier posten? Möchte mal sehen, wie du das realisiert hast.

    Kannst du mir konkret etwas zeigen, wo ich dir weiter helfen kann?

    Wenn du etwas nicht veröffentlichen willst, dannst du das auch als PN (Private Nachricht) an mich senden.

    Gruß Mitch

    kleiner Nachtrag.

    Wie gefällt dir das (Comp.Sync-Signal):
    Klicke auf die Grafik für eine größere Ansicht

Name:	V-Sync_mit_Trabanten_01.png
Hits:	14
Größe:	43,8 KB
ID:	27536Klicke auf die Grafik für eine größere Ansicht

Name:	Zeilenfrequenz_bei_Bildwechsel_31250Hz.png
Hits:	10
Größe:	45,9 KB
ID:	27537Klicke auf die Grafik für eine größere Ansicht

Name:	Zeilenfrequenz_nach_Bildwechsel_15625Hz.png
Hits:	9
Größe:	44,0 KB
ID:	27543
    Die Signale sind nach CCIR-Norm bis auf kleine Abweichungen in der Pulsbreite von H-Sync. Sollte aber nicht weiter stören.
    Kannst du das Comp-Sync so gebrauchen? Oder brauchst du statt dessen H-Sync und V-Sync separat?

    so sieht übrigens mein Bildmuster-Generator aus:
    Klicke auf die Grafik für eine größere Ansicht

Name:	BildmusterGenerator_BS-3.jpg
Hits:	12
Größe:	69,2 KB
ID:	27538Klicke auf die Grafik für eine größere Ansicht

Name:	PICT2232.jpg
Hits:	13
Größe:	75,1 KB
ID:	27539

    Gruß Mitch
    Geändert von Mitch64 (16.02.2014 um 15:44 Uhr)

Berechtigungen

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

Labornetzteil AliExpress