Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
hier ist nun die vierte Ausgabe des Videoprogrammes.
Ich habe jetzt alles eingebaut, was ich mir so vorgestellt hatte.
Wir haben jetzt:
- 28 x 24 Zeichen
- 7-Bit ASCII-Zeichensatz
- PAL BAS-Vdeosignal
- RS-232 Eingang mit einstellbarer Baudrate
- Scrolling
- Steuerfunktionen CR, LF, und FF
- blinkender Cursor
- kein Zeilenwackeln mehr beim Schreiben
Die Einstellung der Baudrate erfolgt über die Pins 4, 5 und 6 des ATmega.
Das ist PortD2, D3 und D4.
Je nachdem wie diese PIns beim Einschalten auf 0 oder 1 geschaltet sind,
wird die Baudrate gewählt. (Jumper)
Wenn man die Pins einfach offen lässt, so wie bisher,
dann bedeutet das 9600Baud.
Die eingestellte Baudrate wird nach dem Einschalten
auf dem Bildschirm angezeigt. Da braucht man nicht Rätseln.
Hier ist eine Tabelle für die Einstellung der Baudrate:
Code:
Baudrateneinstellung Videoterminal ATMEGA-8
PIN 6 5 4 Baudrate
------------------------------
1 1 1 9600
1 1 0 19200
1 0 1 4800
1 0 0 2400
0 1 1 1200
0 1 0 300
0 0 1 110
0 0 0 9600
Folgende Steuerzeichen können derzeit genutzt werden:
CR (0dh) Ctrl-M = Rücklauf zum Anfang der Zeile
LF (0ah) Ctrl-J = Eine Zeile tiefer springen
FF (0ch) Ctrl-L = Bildschirm löschen
Für alle, die nicht den ganze Thread lesen wollen,
hier nochmal kurz wie der Atmega an das TV-Gerät
angeschlossen wird.
Das Programm läuft auf ATMEGA8 mit dem internen 8-MHz RC-Clock
Die Fuses muss man entsprechend einstellen und flashen.
Man braucht drei Widerstände.
100 Ohm an GND (Pin 8 )
560 Ohm an PortB0 (Pin 14)
1200 Ohm an PortD6 (Pin 12)
Die drei freien Enden der Widerstände verbinden
ergibt das Videosignal. Diese Signal und GND an den
Video-Eingang des TVs anschliessen.
Das RS-232 Signal mit TTL Pegel wird am RxD-Eingang ( Pin2 ) angeschlossen.
Und dann einfach was senden, und es erscheint auf dem Bildschirm.
Wäre schön, wenn ihr das Programm testet und nutzt.
Da sind sicher noch einige Fehler in dem Programm drin.
Wenn euch welche auffallen, teilt es mir mit.
Ich freue mich auf euer Echo...
Gruß Jan
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,
so, die Cursorsteuerung ist jetzt auch drin.
Damit kann man den Cursor direkt
auf eine beliebige Bilschirmstelle setzen.
Funktioniert folgendermassen:
Um den Cursor in eine bestimme Spalte (X) zu setzen,
sendet man erst eine 14 (Ctrl-N) und direkt danach
eine Zahl zwischen 0 und 28.
Zum Beispiel: die Sequenz mit beiden Bytes 14,20
setzt den Cursor auf Spalte 20.
14,5 setzt auf Spalte 5
Wenn das zweite Byte >28 ist, wird es ignoriert
und die Sequenz wird abgebrochen.
Um den Cursor in eine bestimme Zeile (Y) zu setzen,
sendet man erst eine 15 (Ctrl-O) und direkt danach
eine Zahl zwischen 0 und 24.
Zum Beispiel: die Sequenz mit beiden Bytes 15,20
setzt den Cursor auf Zeile 20.
15,5 setzt auf Zeile 5
Wenn das zweite Byte >24 ist, wird es ignoriert,
und die Sequenz wird abgebrochen.
Ich hoffe, das ist einigermassen verständlich.
Die Sequenz besteht nur aus zwei Bytes !!
also nicht aus vier Ziffern, und das Komma wird auch nicht gesendet.
Eine 14 bedeutet "setze Cursor auf Spalte",
Eine 15 bedeutet "setze Cursor auf Zeile",
und das Byte danach ist die gewünschte Position.
Die Bytes sind hier als Dezimalzahlen angegeben.
15,20 wäre in hexadizemal 0F,14 - nur zur Klarstellung.
Klingt komplizierter als es ist.
Vieleicht probiert ihr es mal aus.
Damit ist das Programm jetzt auch fertig.
Mehr will ich nicht dran machen, ausser es tauchen noch Bugs auf.
Die würde ich natürlich noch versuchenzu korrigieren.
Bis dann... Jan
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Peter,
Ich habe jetzt die Source-Datei meines AVR-Video-Terminalprogrammes
im Bereich Download unter AVR Quellcode für dich abgelegt.
Und natürlich auch für alle anderen Interessierten.
Bei der Überarbeitung des Quellcodes sind mir noch einige Macken
aufgefallen, und ich konnte die Terminalgeschwindigkeit noch verbessern.
Deshalb gibt es auch eine neue Version des Programmes.
Die Letze, hoffe ich.
Schau dir den Quellcode mal an, und sag mir ob er dir gefällt.
Ich hab es wirklich ausführlich kommentiert, so das die Funktion
für jeden klar werden dürfte.
Ich hänge die ASM-Datei auch hier noch mal dran.
Gruß Jan