- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 28

Thema: AVR ASCII Video Terminal 40x25 - Atmega8 - BAS Signal

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.12.2004
    Ort
    LEV
    Beiträge
    505

    AVR ASCII Video Terminal 40x25 - Atmega8 - BAS Signal

    Anzeige

    Praxistest und DIY Projekte
    Hallo,
    hier ist der Source-Code für mein AVR ASCII Video-Terminal
    mit 40x25 Zeichen auf Basis von AtMega8-16.
    In der angehängten Zip-Datei findet ihr den Source-Code,
    den Schaltplan, und das Hex-File.

    Das Terminal kann 25 Zeilen mit je 40 Zeichen auf jedem
    SW- oder Farbfernsehgerät mit Videoeingang darstellen.
    Die ASCII Zeichen werden die serielle Schnittstelle
    mit 300 - 19200 Baud mit TTL-Pegel übertragen.

    Eine genauere Beschreibung der Terminalfunktionen steht am
    Anfang im Source-Code.

    Angefangen hat das Ganze in diesem Thread:
    https://www.roboternetz.de/phpBB2/viewtopic.php?t=5880

    Ein Hinweis für Gäste: Bilder und Attachments kann man hier nur sehen oder Downloaden,
    wenn man im Forum eingeloggt ist.

    Gruß Jan
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken vidterm2.jpg  
    Angehängte Dateien Angehängte Dateien

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    19.09.2006
    Beiträge
    11
    Hallo Jan,

    ich teste gerade die neue Version. Alles läuft SUPER !!!! Der "Positionierungsfehler" ist auch weg ....

    Viele Grüße

    Gerry

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.12.2004
    Ort
    LEV
    Beiträge
    505
    Hallo,
    ein kleiner Fehler ist schon aufgetaucht:

    In der Beschreibung der Terminal-Funktionen
    ist bei der Cursorpositionierung Spalte-Y und Zeile-X vertauscht.
    Richtig muss es heissen:
    Ctrl-N oder dez 14 setzt den Cursor auf ZEILE-Y
    und
    Ctrl-O oder dez 15 setzt den Cursor auf SPALTE-X

    Sorry !

    Gruß Jan

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    19.09.2006
    Beiträge
    11
    Hallo Jan,

    hier noch ein weiteres kleines Feedback.

    Die Positionierkoordinaten beginnen ja ab 0, d.h. X von 0 bis 39 und Y von 0 bis 23.

    Wenn ich ein ASCII 12 sende, wird der Bildschirm gelöscht, der Cursor befindet sich auf Position 0,0.

    Beim Kommando ASCII 13 wird auch auf Position 0,Y korrekt positioniert.

    Wenn ich aber ASCII 15,0 absetze, beginnt die ganze weitere Ausgabe durcheinander zu kommen.

    Also

    Serout 0,2400,[15,0,14,5] sollte den Cursor auf Position 0,5 setzen und die weitere Ausgabe genau dort erfolgen. Aber genau ab diesem Zeipunkt ist die Ausgabe "unkontrolliert" wirr, d.h. an unterschiedlichsten Screenpositionen ohne erkennbares Schema.

    Dies passiert nur, wenn ich auf Zeile/Spalte 0 positioniere, mittels ASCII 14/15. Bei Werten größer 0 funktioniert Alles blendend.

    Dieses Verhalten gibt es übrigens auch bei der 8MHZ Version ....

    Viele Grüße

    Gerry

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    20.08.2006
    Beiträge
    280
    Hallo,

    wäre es auch möglich den Code nach C zu portieren oder ist C dafür zu langsam?


    Viele Grüße,
    Johannes

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.12.2004
    Ort
    LEV
    Beiträge
    505
    Hallo,
    @Gerry: Du hast absolut Recht !
    Mit Null als X oder Y Koordinate funktioniert es nicht.
    Ich hab auch schon lokalisiert wo es hakt.
    Blöder Fehler - wie immer...
    Die Null wir erstmal im Input-Buffer abgelegt. Das klappt.
    Aber an anderer Stelle im Programm steht Null für einen "leeren" Platz im Buffer.
    Das heisst, die Null wird nie verwendet.
    Darüber hinaus kommt dabei auch noch die "Bufferverwaltung" durcheinander.

    Ich werde das morgen korrigieren, heute ist es schon zu spät.
    Klasse, das du so aufmerksam bist, und das du dir die Mühe machst,
    das Programm zu testen und mit die Bugs zu melden.
    Vielen Dank dafür.

    @Johannes:
    Das geht sicher auch in C, vorausgesetzt jemand beherrscht
    den C-Compiler sehr gut, so das er abschätzen kann,
    was da an Code bei rauskommt. Da muss man schon
    sehr "optimiert" Programmieren. Aber gehen tut das.
    Hat bestimmt auch schon irgendwer gemacht.
    Ich hab allerdings noch keine "reine" C-Lösung (ohne ASM-Teile)
    mit dieser Zeichen/Zeilenzahl gesehen.

    Gruß Jan

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    19.09.2006
    Beiträge
    11
    Hallo Jan,

    ich habe die letzten paar Tage Dein Programm sehr eingehend getestet. Und bis auf das oben bereits genannte Problem der Cursopositionierung auf Spalte/Zeile 0 ist mir bis dato nichts weiter untergekommen.
    Es läuft und läuft, und das "saugut".

    Eine Sache ist mir noch aufgefallen, was ich aber nicht als Fehler bezeichnen würde. Du hast die Grafikzeichen auf ASCII 0 bis 15 gelegt. Da gibts natürlich Überschneidungen mit den Steuersequenzen ASCII 10,12,13,14 und 15.
    Abhilfe schafft einfach, die Grafikzeichen auf ein anderen Bereich, z.B. 129-144 zu legen, was ohne großen Aufwand funktioniert.

    An dieser Stelle wirklich ein Riesenkompliment für eine "Reife Leistung"

    Viele Grüße

    Gerry

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    41
    Beiträge
    982
    wow! super projekt! sobald ich zeit habe werde ich es mal eingehend testen!

    gruss bluesmash

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    Hi,
    hab's gerade mal auf Lochraster aufgebaut.
    Funktioniert Perfekt!
    Auch von mir ein Riesen kompliment für diese Arbeit!
    Wie wär's den mit einem "RN-Video" Board" ?

    Gruß
    Christopher

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.12.2004
    Ort
    LEV
    Beiträge
    505
    Hallo,
    jetzt bin ich endlich mal dazu gekommen die bekannten Bugs zu beseitigen.
    Die Cursorpositionierung funktioniert jetzt auch mit Null als Positionsangabe,
    und die Grafiksymbole habe ich wie von Gerry vorgeschlagen in den Bereich
    vom 129 bis 143 verschoben.

    Vielen Dank nochmal an Gerry für das Testen und für seine Hinweise.

    Wenn euch noch Fehler auffallen, gebt bitte Bescheid.
    Ich versuche dann, das in Ordnung zu bringen.

    Gruß Jan
    Angehängte Dateien Angehängte Dateien

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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

12V Akku bauen