project:spacewavr
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| project:spacewavr [2019-12-16 02:19] – angelegt xq | project:spacewavr [2019-12-16 02:32] (aktuell) – xq | ||
|---|---|---|---|
| Zeile 6: | Zeile 6: | ||
| Eine Implementierung von [[https:// | Eine Implementierung von [[https:// | ||
| - | |||
| - | Source-Code: | ||
| Gameplay-Video: | Gameplay-Video: | ||
| Zeile 41: | Zeile 39: | ||
| {{: | {{: | ||
| + | Das Projekt ist mit einem ATmega32 implementiert und benutzt zwei [[https:// | ||
| + | |||
| + | Die Ausgänge dieser DACs dienen als X- bzw. als Y-Ableitung für den Oszilloskop-Strahl. Dieser wird dann im Programm direkt über die Ports B und D des Atmega32 angesteuert. | ||
| + | |||
| + | Intern rechnet das Programm alle Bildschirm-Koordinaten als vorzeichenbehafteter 16-Bit-Integer und schneidet die niederwertigen 8 Bit bei der Ausgabe ab: | ||
| + | |||
| + | void move_cursor(int16_t x, int16_t y) | ||
| + | { | ||
| + | PORTB = 128 + x / 256; | ||
| + | PORTD = 128 + y / 256; | ||
| + | } | ||
| + | |||
| + | Damit ist sowohl ausreichend Rechenpräzision garantiert als auch genug Geschwindigkeit, | ||
| + | |||
| + | Die Eingabe erfolgt direkt über den Port C und benutzt hier die internen PullUp-Widerstände. Dies vereinfacht die Schaltung, da keine externen Widerstände benötigt werden. | ||
| + | |||
| + | Den vollen Quellcode findet man auf GitHub: | ||
| + | |||
| + | https:// | ||
| + | |||
| + | Schaltplan oder Platinenlayout müsste mal jemand machen //hubel hubel//. | ||
| ==== Weitere Fotos ===== | ==== Weitere Fotos ===== | ||
project/spacewavr.1576459146.txt.gz · Zuletzt geändert: von xq
