Forum: Projekte & Code SEISMOGRAPH TV FBAS composite video Eigenbau selber bauen BMA020 ATmega1284p Assembler


von Bernhard S. (bernhard)


Angehängte Dateien:

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

: Bearbeitet durch User
von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

@alle

Diese Version speichert bis zu 60 Ereignisse im EEPROM 24FC1025.

Das Assembler-Programm kommt auch ohne externen EEPROM oder/und
RTC zurecht.

Bernhard

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.