Das kommt am Ende teurer, als ein AVR mit größerem RAM. Von der Komplexität der Ansteuerung mal ganz abgesehen. Wie gesagt, der ATMega8 kostet 1,70€. Peanuts.
Mit RIC und Leerzeichen sind es knapp 100 Byte. Das muß, je nach Algorithmus, 2 mal im Speicher gehalten werden, dazu noch ein paar andere Variablen und es wird mit 256 Byte schon knapp.Aber da wir über einen DME-Text reden, sind 512 Byte mehr als ausreichend ..
Das Programm spielt sich im Flash ab. Derzeit bin ich bei ~2kB.Oh, kommt drauf an, was BASCOM daraus macht, Assembler ist speichersparender,
aber schwieriger ;)
Das RAM wird rein über den Programmablauf belegt. EEPROM gäbe es zur Not ja auch noch.
Das verstehe ich nicht ganz.Nutzt du dann den kompletten ANSI-Satz zur Druckersteuerung ?
Das Programm wartet auf ein Zeichen im Buffer, "startet" dann, liest noch ein Zeichen, das verworfen wird (der Advisor beginnt mit CR + LF) und addiert dann die gelesenen Zeichen zu einem String, bis ein '/' gelesen wird. Das ist das Trennzeichen das der ELR zwischen die Datenfelder setzt. Dieser erste String beinhaltet das Einsatzstichwort. Das wird auf die Anzahl der Zeichen hin überprüft und mit einer Programmroutine ein String erstellt, der mit einem '*' beginnt, das Alarmstichwort zentriert und mit einem '*' endet, das so gesetzt wird, daß der Textrahmen perfekt aussieht.
Dann werden alle weiteren Zeichen über "Input" als String eingelesen. Zwischen dem Alarmtext und dem Zeitstempel des Advisor kommen wieder CR + LF, die das "Input" abschließen. Das LF wird mit "Waitkey" gelesen und verworfen und dann der String aus Uhrzeit und Datum eingelesen.
Die Strings werden dann formatiert, die Einsatznummer wird gesucht und herausgeschnitten und dann wird das Ganze in neuen, druckfertigen Strings abgelegt.
Das Programm initialisiert dann den Drucker (und zwar komplett), da seit der letzten Alarmierung mehrere Tage vergangen sein können.
Und dann wird gedruckt. Zwei Ausdrucke, in der Fußzeile durchnummeriert.
Anschließend bekommt der Drucker noch einen Softwarereset und das Programm springt wieder in die Startposition.
Das Alarmstichwort wird nach dem Einlesen auf "P-Probe" überprüft. Wenn positiv, wird eine separate Subroutine angesprungen, in der eine Testseite ausgedruckt wird.
Kniffelaufgabe ist jetzt der automatische Wortumbruch. Man muß, von vorne beginnend, alle Leerzeichen und '/' suchen, entscheiden, wo man schneiden muß, abschneiden, String erzeugen und im Rest wieder nach Schneidepunkten suchen, schneiden, String erzeugen etc., bis der Text auf 3-5 Zeilen aufgeteilt ist, ohne am Zeilenende eine Worttrennung zu haben.
Aber das klingt am Ende aufwendiger als es ist, BASCOM ist wirklich genial und nimmt einem viel Kniffelarbeit ab.
MfG
Frank