Siehe erstes Posting, ATmega8.
Von meiner Seite aus ein dickes "Respekt", vor allem, da sich mir die Welt der µC so nach und nach jetzt auch studientechnisch erschließt ;-)
Echt eine super Idee!
thilo
Siehe erstes Posting, ATmega8.
Von meiner Seite aus ein dickes "Respekt", vor allem, da sich mir die Welt der µC so nach und nach jetzt auch studientechnisch erschließt ;-)
Echt eine super Idee!
thilo
An den eingesetzten µC werden 2 Anforderungen gestellt. Er muß ausreichend RAM haben, um den Text in mehreren Fragmenten im Speicher halten zu können. Da sind 256 Byte etwas knapp, also sollten es mind. 512 Byte sein. Und er sollte einen Hardware-UART besitzen. Theoretisch geht es auch mit Software-UART, aber das ist dann in der Entwicklung eine zusätzliche Fehlerquelle.
Von daher habe ich mich für den 28-poligen ATMega8 entschieden. Im Prototyp sitzt allerdings noch ein 40-poliger 8515, weil ich den gerade da hatte.
Theoretisch sollte das Ganze auch mit einem der neuen ATTiny gehen, die trotz 8-poligem Gehäuse bis zu 8k Flash und 512 Byte RAM haben. Bringt aber preislich keinen Vorteil (im Gegenteil) und Platzprobleme gibt es auch keine. Von daher ist der ATMega8 für 1,70€ die beste Wahl.
Durch Zufall habe ich bemerkt, daß in der aktuellsten Version des BASCOM die DCF77-Funktion enthalten ist. Das ist natürlich genial und wird demnächst auch hier eingesetzt. Auf dem Entwurf des Platinenlayouts ist ein entsprechender Stecker für den Anschluß der Aktivantenne schon vorgesehen.
MfG
Frank
das waren also deine basteleien für die feuerwehr von denen du mal sprachst;)
ne aber das mit dem mega8 hab ich übelesen....mich würden trotzdem mal die platine bzw der testaufbau bzw das layout interessieren (nur vom groben aufbau...nich für den nachbau;) soviele einsätze haben wir nun wirklich nich.....der würde in 7 jahren vellei 20 mal drucken....davon 15 mal ne übung...*g*)
Moin ..
Ein kleiner I2C SRAM würde deinen Speicher entlasten ..
Aber da wir über einen DME-Text reden, sind 512 Byte mehr als ausreichend ..
Oh, kommt drauf an, was BASCOM daraus macht, Assembler ist speichersparender,
aber schwieriger ;)
Nutzt du dann den kompletten ANSI-Satz zur Druckersteuerung ?
Gruss,
Tim
--
In a world without walls and fences, who needs Windows and Gates ??
Meine private Webseite: http://www.db1jat.org
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
Geändert von F64098 (30.11.2007 um 19:33 Uhr)
Genau!! ;-)
Der Prototyp läuft auf Lochraster. Für den Anschluß des Advisor und des Druckers verwende ich farbige Flachbandkabel an einreihigen Steckern. In der "Serienversion" will ich die 2-reihigen zum Anpressen verwenden.mich würden trotzdem mal die platine bzw der testaufbau bzw das layout interessieren (nur vom groben aufbau...nich für den nachbau;)
Das Layout ist weit fortgeschritten, ich kämpfe aber derzeit mit der Entwirrung der ankommenden Leitungen von der parallelen Schnittstelle zum Interfacebaustein 74HC244 (für den Programmieradapter des AVR). Ich dachte, ich bekomme es ohne Brücken hin, aber das wird nichts. Wenn ich fertig bin, kann ich es gerne online stellen.
Ich kann Dir versichern, daß eure Alarmierungen zur Zeit eh keinen Text enthalten ;-)soviele einsätze haben wir nun wirklich nich.....der würde in 7 jahren vellei 20 mal drucken....davon 15 mal ne übung...*g*)
MfG
Frank
jop...das weiß ich ausnahmsweise;) würde ja auch wenig sinn machen....da bei uns keiner einen textmelder hat (bzw eine sprachmelder der beliebige texte sprechen kann)
aber wenn man sowas vorhätte würde es sicher kein problem darstellen so etwas durch liebes nachfragen bei der leitstelle zu klären....die technik wäre ja da........aber über den sinn lässt sich streiten;)
Moin..
Frank: Drahtbrücken? .. brauchst du nicht noch "Blockwiderstände" wegen EMV? (die ändern nix
an der Schaltungsfunktion, aber sehen besser als Drahtbrücken aus ^^
--
In a world without walls and fences, who needs Windows and Gates ??
Meine private Webseite: http://www.db1jat.org
Irgendso wird's wohl werden. Ich kann das Flachkabel drehen und wenden wie ich will, ohne "Fitz" im Layout geht es sich nicht aus.
Ich könnte auch mit den Leiterbahnen zwischen den Lözaugen der ICs durch, aber das möchte ich dem Fertiger ersparen.
Und Widerstände <100 Ohm habe ich noch haufenweise rumliegen ;-)
MfG
Frank
Es IST sinnvoll, da gerade bei hohem Einsatzaufkommen o.ä. nicht noch Banalitäten am Funk ausgetauscht werden müssen. Der Disponent hat schon alle Angaben brav in seine Maske gehackt, warum also das Ganze nochmal am Funk vorplappern, wenn man es auf dem DME/dem Alarmausdruck nachlesen kann/könnte
Einen Ausdruck halte ich auch für sinnvoller als ein Großisplay, da man den Ausdruck mitnehmen und ggf. unterwegs nochmal draufschauen kann.
MfG
Frank
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)