SEISMOGRAPH TV FBAS composite video Eigenbau selber bauen BMA020 ATmega1284p Assembler

OP #4367810
Lesenswert?

Hallo,

ein leicht übertakteter ATmega1284p - 22MHz - generiert ein s/w 
vollgrafik BAS-Signal (composite video) mit 360x256 Pixeln.

Der Beschleunigungssensor BMA020 wird durch den TWI/I2C-BUS ca.100 mal 
pro Sekunde ausgelesen und das Ergebnis im Diagramm angezeigt.

Wird eine Erschütterung registriert, dann wird ein Marker gesetzt und 
nach ca. 2 Sekunden friert die Kurve mit Zeitstempel ein.

Ein Tastendrück erweckt das System wieder zum Leben :-)

Drückt man gleichzeitig "TASTE +" und "TASTE -" führt das 
Assembler-Programm einen Soft-Reset aus.

Die Tasten erlauben eine Menuesteurung, auch die Ansprechschwelle, Datum 
und Zeit ist einstellbar.

Bei Programmstart liest das Programm den RTC DS1307 aus,
man kann auch auf ihn verzichten.



Nach einem Programmstart wird folgendes angemeckert:

- fehlender BMA020
- fehlender DS1307
- gedrückte Taste
- belegter TWI/I2C-BUS

Hinweis:

Im TV-Bild unten ist eine wandernde "Laus" zu sehen, das ist eine 
Sekunden-Markierung, denn die LOOP-Schleife arbeitet unterschiedlich 
schnell, je nach Bilddatenmenge des Seismografen.

LEDs:

GRÜN leuchtet: flackert, alles ok (Lebenslicht)
GELB leuchtet: ALARM wurde ausgelöst
ROT  leuchtet: schwerer Fehler, aber Programm läuft weiter

Blinken die LEDs, das ist nicht gut !
ROT blinkt:            Fehler im Programmcheck
ROT+GELB blinken:      WDR-Zeitüberschreitung
ROT+GELB+GRÜN blinken: unkorrekter Interruptaufruf

Besonderheiten Programm:

Die Offset-Werte des BMA020 werden minütlich vorsichtig korrigiert, um 
z.B. den Einfluss des Mondes auf die Erdanziehungskraft zu kompensieren.

Um wertvolle Takte zu sparen, wird bei der Bild-Generierung untersucht, 
ob eine TV-Zeile Daten enthält, wenn nicht, dann wird sofort die 
Bild-Interrupt-Routine verlassen.

Verschachtelte Interrupts sind eingebaut.

Ein zusätzlicher Timer ermöglicht eine Taktkorrektur, um das Jittern des 
Bildes zu unterbinden.

Bildspeicher=45Bytes/Zeile x 256Zeilen=11.520Bytes

Permanent werden diverse Register und SRAM-Werte auf Plausibilität 
geprüft.

Der 22x10 ASCII-Zeichensatz (16x24) ist in der Tabelle hinterlegt, kann 
bei Bedarf geändert werden, ein ASCII-Zeichen wird auf dem Monitor so 
dargestellt, wie es in der Tabelle optisch zu sehen ist, ein spezieller 
FONT-Generator ist nicht zwingend erforderlich.


Bernhard
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren