Endlich ist es soweit, dass Projekt ist erstmal abgeschlossen und ein meiner Meinung anch schönes Ergebniss liegt vor.

Dank Jan Baares für seinen Assemblercode für das Videoterminal und alle anderen die mir geholfen haben
Ausgabe eines Textes auf TV
Programme Seite 7 bis 10

Für dieses Super Programm habe ich ein board entworfen:

Text-on-Screen Board (ToS)


Features:

- Mega8 mit Video-Code
- AT90S2313
- Anschluss für Tastatur
- Infrarotempfänger
- RS232 über Max232
- Addlink für Funkverbindung zum PC oder anderem uC
- Statusleds

Bild hier  

(Oben) Das ToS-Baord im Gehäuse, gut zu erkennen sind die RS232-Buchse, die Statusleds, der Video-Ausgang, (noch) ein Kabel für die Stromversorgung und der TSOP.
(Unten) Ein Blick auf das innere des Gehäuses, durch einfaches Umstecken einese RS232-Verbinders (2 Kabel) kann hier anch belieben zwischen den verschiedenen Komponenten gewählt werden, denn es stehen ja 4 RS232-fähige Komponenten zu Verfügung. Damit wollte ich erreichen, dass das Baord auch für Spätere Versuche möglichst universell bleibt.

Bild hier  

Natürlich darf dann auch der entsprechende Funk-Adapter für den PC nicht fehlen. Stromversorgung über USB. Nun kann mit ToS-Paint schnell ein Bild per FUnk zum Board rübergefunkt werden.
Bild hier  

Nun habe ich auch endlich die neue Softeware fertig. Diese erlaubt einerseits ein Bild zu zeichenen und zu Schreiben und dieses Direkt an den Mega8 zu übertragen, die entsprechenden Video-Daten erzeugt und andereseits wird ein Code erzeugt, der es einem 2. AVR erlaubt ein Bild quasi zu speichern und dann über RS232 auszugeben. Der passende Data-Code für den AVR wird dann mit ToS-Paint erzeugt und in diesen eingefügt (da, wo bisher "ÌÌÌÌÌÌÌÌÌ" steht).

Code:
$crystal = 4000000
$baud = 19200
Dim Zeile As String * 28
Dim Zeichen As String * 1
Dim Reihe As Byte
Dim Spalte As Byte
Dim Thestring As String * 15
Dim Number As Byte
Thestring = "ÁÂÀáâàÉÊÈéêèÍÎÌ"
Dim Zpz As Byte
Restore Daten
Zpz = 28
For Reihe = 1 To 24
   Read Zeile
   If Reihe = 24 Then Zpz = 27
   For Spalte = 1 To Zpz
      Zeichen = Mid(zeile , Spalte , 1)
      Number = Instr(thestring , Zeichen)
      If Number > 0 Then
         Number = Number + 16
         Print Chr(number);
         Else
         Print Zeichen;
         End If
   Next Spalte
Next Zeile
Do
Loop

Daten:
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Data "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ"
Durch die Speicherung in einem Datenfeld, wurde es möglich die Bilddaten kompakt und übersichtlich zu speichen. Die einzellnen Character über: " chr(15); ch(17)" auszugeben hätte einerseits zu viel Speicherplatz verbraucht und hätte nicht zu einer kompakten Form geführt. Da ich einen AT90S2313 auf dem Baord verwende war es sehr wichtig, dass der Code möglcihst Speicheroptimiert ist.

Bild hier  

Und hier das entsprechende Fernsehbild:
Bild hier  

Motivation das Programm zu schreiben war für mich das Ziel eine einfache Bedienoberfläche für das Board zu entwerfen, da es sonst sehr umständlich ist Bilddaten und/oder Text zu erzeugen, der dann auf dem Bildschicrm auch noch richtig formatiert sein soll. Ein zweiter wichtiger Punkt war, dass dieses Programm die erstellten Daten möglichst schnell und ohne Umwegezum Mega8 "transportieren" sollte, deshalb habe ich viel Wert darauf gelegt und viel Zeit investiert, um dem Programm eine Funktionierende RS232-Verbindung zum Board zu spendieren. Im Programm kann zwischen allen möglichen Baudraten gewechselt werden und selbstverstänflich kann auch ein andere Com-Port verwendet werden.

Ich würde mich freuen, wenn jemand das ganze mal testet un dich ein par Rückmeldungen erhalte.

Download des Bascom-Porgramms und von ToS-Paint auf meiner Website (da etwas groß):
www.free-webspace.biz/update/

MFG Moritz