Hallo, angespront von diesem Artikel / Projekt (http://www.serasidis.gr/circuits/AVR_VGA/avr_vga.htm) wollte ich das gnaze nachbauen. Natürlich kompilierte der Code erstmal nicht und nach einigen Fixes gings dann doch aber als Bild kommt nur Müll. Da stimmen wohl die Timings nicht mehr mit nem neuem Compiler & Libs. Jetzt hab ich angefangen das ganze nachzuprogrammieren und natürlich ganz am Anfnag angefangen. Dieser Artikel (http://www.rickard.gunee.com/projects/video/pic/howto.php) geht schon etwas mehr auf die Technik ein und da hab ich es dann auch geschafft ein paar vertikale Linien auf den TV zu zauben (einfach eine Scan-Line in der Schleife..). Da kamen aber auch wieder merkwürdige Effekte die ich nicht ganz verstehe.. Ich gewissen Grenzen konnte ich die Dauer der Scanline verändern ohne das das Bild unbrauchbar geworden wäre. Außerdem scheint das Bild hinten und vorne Abgeschnitte zu sein, es wird also nicht alles was ich schicke angezeigt (klar, die 4 + 8 micros hsync beachtet!). Und dann noch wie is das mit der hsync? Wenn ich die mache springt er an den Anfang der Zeile? Daher kann ich die Länge der Scanline etwas varieren? Und wie muss ich das jetzt mit dem VSync machen? einfach alle x scanlines vsync machen? immer abwechselnd für das eine und das andere Halbbild? Wie genau muss der aussehen? Aus der Skizze in dem zweiten Link werd ich nicht ganz schlau..
Hallo, mehr zum Sortieren... PAL ist die Art der Übertragung einer Farbinformation in einem FBAS-Signal. F Farb- B Bild- A Austast- S Syncron- Du bastelst vorest an einem BAS-Signal, also ohne Farbe. Die Zeiten sind durch die TC-Norm festgelegt, Zeilenfrequenz 15625Hz, also Zeilendauer 64µs von HSync-Start zu HSync-Start. Bild 20ms von VSync-Start zu VSync-Start. Davon sollte man möglichst nicht abweichen, weil der TV eigentlich nur diese Werte kann. Bei geringen Abweichungen verschiebt sich die Bildlage, werden sie größer kommt die Syncronisation aus dem Tritt, das Bild "zerfällt" oder läuft durch. Das die Geschichte nicht endlos schnell ist, wird für die Zeit der Zeilen- und Bildrückläufe der Strahl dunkelgetastet, der Austastimpuls vor und nach den Syncronimpulsen. Da wird eben schwarz gesendet. Die Austastzeiten legen fest, ab wann oben und links und bis wann unten und rechts was dargestellt wird. Den restlichen Kram kannst Du im Prinzip erstmal ignorieren, alle Fernseher stellen auch problemlos ein vereinfachtes Signal dar. Dabei werden einfach völlig identische Halbbilder mit 312 Zeilen erzeugt. Daß es eigentlich 312,5 sind, kann man ignorieren. Erzeuge alle 64µs einen Zeilenimpuls und alle 312 Zeilen einen Bildimpuls und mache dann eine Zeile in der Mitte weiß. Die sollte stabil irgendwo stehen. Nun mache den Anfang dieser Zeile schwarz, bis der Beginn des sichtbaren Teils sauber links erkennbar ist. Dann das Spiel am Ende der Zeile, bis sie rechts vor dem Rand endet. Dann hast Du die nutzbarer Breite. Dann setze diese Zeile an den Anfang des Bildes (etwa ab Zeile 15, bis sie oben sichtbar ist, gleiches Spiel unten am Ende. Dann hast Du die Anzahl nutzbarer Zeilen. Kann man auf einem µC ja recht gut wirklich durchspielen, danach sollte Dir der Aufbau des Signals ziemlich klar sein. ;) Ganz ohne Austastsignale wird die Sache je nach Fernseher unstabil werden oder Rücklaufstreifen zeigen. Solange Du die H- und V-Frequenz einhälst, passiert dem Fernseher dabei nichts. Bei sehr großen oder ungünstigen Abweichungen kann allerdings auch ein Fernseher sauer reagieren (Schutzschaltungen können ansprechen...). Gruß aus Berlin Michael
Gibts für TV als fertig programmierter ATMEGA8, inklusive Echtzeit-Balkengrafik. Testversion (40 Betriebsstunden lauffähig) ***inklusive Versand**** für 3,95 Euro :) http://www.tvterminal.de/tvt_mobi_2.html 3,95 überweisen und das Ding kommt per Post. Man kanns erstmal in Ruhe ausprobieren, und dann den ATMEGA8 gegen 10 Euro freischalten (oder löschen und als normalen Mikrocontroller benutzen)
Hallo, @Isipisi: gibts etliches als Freeware in mehreren Varianten in der Codesammlung und im Internet... @Zacc: kann man, macht man, muß man nicht. Konnte ich aber schon vor mittlerweile 20 Jahren mit TTL-Zählern und Monoflops. Ich finde es gut, wenn jemand sich Grundlagen erarbeiten will, es bringt manchmal schöne Lösungen, auf die andere noch nicht gekommen sind und man wird mit Sicherheit nicht dümmer dabei. Gruß aus Berlin Michael
Hier ein BAS-Videoterminal in mit Source Code für MEGA-8. Läuft mit geringen Modifikationen (Int.-Tabelle) auch mit Mega32. Beitrag "Re: AVR ASCII Video Terminal - 40 x 25 - BAS Signal" MfG Willi
Danke Michael, das hilft mir schonmal weiter! BAS, ja is klar, ist halt sozusagen PAL-Kompatibel :) Soll auch so bleiben, ich meine Farbe ist aus einem ATMega nicht rauszuholen. Das VSync ist mir klar, am Anfang der 64us 4us 0.0V dann 8us 0.3V. Doch wie sieht der HYsnc aus?!? In dem Artikel ist zwar eine Skizze (http://www.rickard.gunee.com/projects/video/pic/vinfo_vsync_big.png) aber die kapiere ich ehrlich gesagt nicht. Keine Achsenbeschriftung und Skala..
Hallo Willi! Hast du das schon mal auf den Mega32 protier oder nur theoretisch?
@MichaelU: Natürlich gibts Freeware Lösungen. Aber mancher möchte vielleicht komfortablen TV-Output bloss nutzen ohne daran herum- zubasteln, genauso wie er ein LCD Display kaufen würde. Echtzeitgrafik und integrierte Uhr und Scrolling bietet keine mir bekannte Freewarelösung. Und für 3,95 kann man das ganze Testen, und bekommt noch einen ATMEGA8 dazu. Finde ich doch mal ne coole Idee, oder ?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.