Datum:
|
Geschätztes Forum, dieses Videogenerator-Assembler-Programm erzeugt mit einem 20MHz Takt und einem ATmega1284P ein s/w Bild auf einem TV-Monitor mit 320x256 Pixeln. Dieses etwas verstaubte Projekt animierte mich dazu: Beitrag "TV VIDEO BILD BAS Frequenzzähler DVM Atmega8 Assembler" Ein 64µs-Timer arbeitet im CTC-Modus und generiert gemeinsam mit einem Port (Port als 8-BIT-Schieberegister) die erforderlichen TV-Signale. Ein weiterer Timer dient als Kontroll-Timer um eine sogenannte Takt-Korrektur zu ermöglichen, denn ein Interrupt-Vector wird nicht immer mit der gleichen Anzahl von Takten angesprungen. Die Generierung per SPI erwies sich als schwierig. Ich habe mir erlaubt, die Zeit der hinteren Schwarzschulter dafür zu nutzen, um den Dateninhalt der zu sendenden TV-Zeile zu überprüfen. Dazu wird eine TV-Zeile in Bereiche unterteilt und diese Bereiche einzeln auf Dateninhalt geprüft. Liegen keine Daten vor, d.h. die TV-Zeile wäre sowieso dunkel getastet, dann wird sofort die Interrupt-Routine verlassen und keine "NULL-DATEN" gesendet, das spart wertvolle Takte. Im Bild "B14_CPU_RECHENLEISTUNG.JPG" sieht man deutlich den Unterschied. Zuerst wird die Rechnenleistung (einfache Zählerschleife) bei einem TV-Schwarz-Bild ermittelt und anschließend bei einem TV-Bild bei der alle Nutz-Zeilen komplett gesendet werden müssen. Der µC benötigt dann mehr Takte, um die TV-Zeilen komplett zu generieren. Gegenwärtig erzeugt dieses Programm nur diverse geometrische Figuren, Menue-Führung und Tastenabfrage ist noch nicht eingebunden. Eine kleine Analog-Uhr konnte ich mir nicht verkneifen. Übrigens, die TV-Norm wird nach meiner Meinung korrekt erfüllt, es dürfte auf den analogen oder digitalen TV-Monitoren keine Probleme geben, wenn die erforderlichen Pegel 0V=ultraschwarz 0,3V=schwarz 1V= weiss an den Eingängen anliegen. Der Assembler-CODE ist nicht optimal, es gibt noch viele Verbesserungsmöglichkeiten. Für Hinweise bin ich sehr dankbar. Bernhard Nachtrag: Die Kreise sehen auf diesem nostalgischen s/w Fernseher aus den 90-ern nun wirklich nicht rund aus, sie sind es aber. Die einzelnen Pixel sind aber auf ihm sehr gut erkennbar.
:
Bearbeitet durch User
Datum:
|
Schick, wobei das natürlich mit 16k RAM einfach ist, und dann natürlich die luxuriösen 3 Taktzyklen pro Pixel :) Was man jetzt noch machen könnte wäre RLE um eine höhere Auflösung und ggf. Graustufen zu kriegen. :) Der Fernseher ist übrigens älter, der ist nicht aus den 1990gern. Wenn Du den auf machst, wirst Du Teile "Made in USSR" finden. Das war ein populäres Exportgerät. Übrigens die Spannungspegel am BAS sind relativ wurscht. Die geben im Prinzip nur die Helligkeit an. Dein Fernseher regelt das eh nach.
:
Bearbeitet durch User
Datum:
|
@alle das ist die "Minimal-Version", also das Fundament dieses Videogenerators. Was nicht dringend zum Bildaufbau erforderlich ist wurde eliminiert. Es besteht nur aus einem 64µs Timer und Kontrolltimer. Drei Striche (aus dem SRAM-Bildspeicher) werden dargestellt, damit man wenigstens etwas sieht. Optimierungspotential ist noch reichlich vorhanden. Könnte ev. als Grundlage für andere Projekte dienen. Bernhard
Datum:
|
Klasse, da muss doch sofort das Testbild in PAL rein, Farbbalken Gitter Kreis Textterminal es gab doch schon ein Projekt für den m32 mit Farbe und PAL kann man den Code nicht gleich mal einbauen? http://www.mikrocontroller.net/articles/PAL_Testbi... Beitrag "AVR Videogenerator, 40x25 Zeichen, nur 60% CPU Auslastung !" http://www.mikrocontroller.net/articles/TV-out
Datum:
|
@Christian >Du den auf machst, wirst Du Teile "Made in USSR" finden. Das war ein >populäres Exportgerät. Du hast Recht, stammt vermutlich aus "СССР", typische Hartfasterplatten, handgelötet ... und funktioniert heute noch :-) Hatte es damals für knapp 90 DM käuflich erworben, war mein Begrüßungsgeld ^^ > Übrigens die Spannungspegel am BAS sind relativ wurscht. Die geben im > Prinzip nur die Helligkeit an. Dein Fernseher regelt das eh nach. Moderne Geräte ja, die älteren nur in einem schmalen Bereich, das Bild fängt dann gern mal an zu "laufen", wenn der Synchronimpuls zu schwach vertreten ist. @Seppi (Gast) >Braucht keiner. Nur Spielereien für Kinder. Eben nicht, die Augen werden nicht besser, da müssen die Displays / Monitore halt größer werden :-) Bernhard
:
Bearbeitet durch User
Datum:
|
@Joachim B. >Klasse, da muss doch sofort das Testbild in PAL rein, >Farbbalken Gitter Kreis Textterminal Vielleicht kann uns Christian an dieser Stelle weiter helfen, er hatte sich schon tiefgründiger mit dieser Materie beschäftigt. Es liefen auch schon diverse Versuche dazu: Beitrag "ATMega32 16 MHz PAL mit Farbe ohne externen Chip" Die Frage ist nur, wie kann man mit handelsüblichen Bauelementen ein PAL-Signal generieren, es würde vielleicht schon Rot-GRÜN-WEISS ausreichen. @Christian >Was man jetzt noch machen könnte wäre RLE um eine höhere Auflösung und >ggf. Graustufen zu kriegen. :) Was ist RLE? Bernhard
Datum:
|
Hallo, Bernhard S. schrieb: >>Was man jetzt noch machen könnte wäre RLE um eine höhere Auflösung und >>ggf. Graustufen zu kriegen. :) > > Was ist RLE? Vermutlich ist hier eine Lauflängenkodierung gemeint. http://de.wikipedia.org/wiki/Laufl%C3%A4ngenkodierung Mit freundlichen Grüßen Guido
Datum:
|
Also RLE könnte hier zum Beispiel folgendermaßen funktionieren: Das Byte im Speicher wird in 2x4 Bits aufgeteilt. Die einen geben die Farbe/Graustufe an, die anderen wie viele Pixel diese da bleibt. Dekodieren kann man das entweder per Schleife, oder per IJMP oder so Befehl. Farbe selbst braucht mindestens die doppelte Farbunterträgerfrequenz als Abtastfrequenz bei PAL, weil man durch PAL die Quadraturamplitudenmodulation auch durch eine Amplitudenmodulation ersetzen kann. Dann wird allerdings die Farbinformation über 2 aufeinanderfolgende Zeilen verteilt. Einfach wird das ganze, wenn man den Controller auf einem ganzzahligen Vielfachen der Farbunterträgerfrequenz laufen lassen kann, denn dann werden die Bitmuster die man ausgeben muss, einfache 10101010 Sequenzen. Ich habe leider keine praktische Erfahrung damit Quarze auf Obertönen zu betreiben. Quarze für die entsprechenden Frequenzen sind leider schwierig zu finden.
Datum:
|
Christian Berger schrieb: > Quarze für die entsprechenden Frequenzen sind leider > schwierig zu finden. Eigentlich sollten sowohl 8,867 Mhz (2*Fsc) als auch 17,734 MHz (4*Fsc) nicht so schwierig zu finden sein, ich jedenfalls habe davon jede Menge in der Quarzkiste - ausgeschlachtet aus Videogeräten des letzten Jahrhunderts. 17,734 bietet sich als Taktfrequenz gut an, da es ja den AVR schon ganz gut ausnutzt. Die Quadraturmodulation von PAL allerdings hat es in sich, denn zumindest Rekorder sind recht mäkelig, wenn die mit Hfreq/2 wechselnde Farbphase nicht stimmt. Wichtiger wäre für mich die Frage, wie das mit modernen 16:9 Flachies (natürlich SD und nicht HD) aussehen würde, denn 4:3 Glotzen sind ja so gut wie ausgestorben.
:
Bearbeitet durch User
Datum:
|
Moderne Fernsehgeräte haben in aller Regel exzellente PAL-Dekoder drin die aus so ziemlich allem noch ein gutes Bild machen können.
Datum:
|
Christian Berger schrieb: > Moderne Fernsehgeräte haben in aller Regel exzellente PAL-Dekoder drin > die aus so ziemlich allem noch ein gutes Bild machen können. Hehe, der ist gut :) Eher im Gegenteil.
Datum:
|
Ich weiß nicht was Du da hast, aber mein türkisches Markenfabrikat kann bei meinem FuBK Testbild sogar noch die 4,33 MHz Streifen einwandfrei und ohne jedwede Cross-Colour-Störung darstellen. Das Bild ist halt relativ groß.
Datum:
|
@alle
@Matthias
> ... denn 4:3 Glotzen sind ja so gut wie ausgestorben.
Das 4:3 / 16:9 Problem beschäftig mich schon seit Tagen.
Die 16:9 Uhr sieht in diesem Beispiel doch etwas seltsam aus.
Hab mir mal die Pixel genauer angeschaut.
Was passiert eigentlich beim 16:9 Format?
Werden die Zeilen enger oder muss ein Pixel kürzer sein?
Bernhard
Datum:
|
Bernhard S. schrieb: > Was passiert eigentlich beim 16:9 Format? > > Werden die Zeilen enger oder muss ein Pixel kürzer sein? Die Pixel werden einfach breiter. Bedenke: Pixel müssen nicht quadratisch sein. Die Idee von quadratischen Pixeln ist relativ neu und stammt aus der Computergraphik nichts aus dem Videobereich. Deshalb haben die meisten digitalen SD-Videonormen auch keine quadratischen Pixel. Du kannst aber dem Fernsehgerät relativ einfach vorgeben, wie Du das Bild dargestellt haben möchtest. Dafür gibts das WSS. http://www.eetasia.com/ARTICLES/1999NOV/1999NOV15_... Dieses Signal hast Du bestimmt schon mal gesehen. Das sind die weißen Streifen die seit Mitte der 1990ger in PAL-Plus Sendungen zu sehen sind. Damit kannst Du dem Fernsehgerät zum Beispiel einfach sagen, dass es die mittleren Zeilen verwendet.