Benutzer-Werkzeuge

Webseiten-Werkzeuge


project:spacewavr

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
project:spacewavr [2019-12-16 02:19] – angelegt xqproject:spacewavr [2019-12-16 02:32] (aktuell) xq
Zeile 6: Zeile 6:
  
 Eine Implementierung von [[https://de.wikipedia.org/wiki/Spacewar!|SpaceWar!]] auf dem AVR. Gehackt an einem Wochenende bietet es einen Spaß für zwei Spieler. Eine Implementierung von [[https://de.wikipedia.org/wiki/Spacewar!|SpaceWar!]] auf dem AVR. Gehackt an einem Wochenende bietet es einen Spaß für zwei Spieler.
- 
-Source-Code: https://github.com/MasterQ32/SpaceWavr 
  
 Gameplay-Video: https://mq32.de/public/spacewavr-04.mp4 Gameplay-Video: https://mq32.de/public/spacewavr-04.mp4
Zeile 41: Zeile 39:
 {{:project:spacewavr:board.jpg?600|}} {{:project:spacewavr:board.jpg?600|}}
  
 +Das Projekt ist mit einem ATmega32 implementiert und benutzt zwei [[https://de.wikipedia.org/wiki/R2R-Netzwerk|R2R-Netzwerke]] als Digital-Analog-Wandler mit jeweils 8 Bit Auflösung.
 +
 +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, dass die Bewegung des Strahls schnell genug vonstatten geht.
 +
 +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://github.com/MasterQ32/SpaceWavr
 +
 +Schaltplan oder Platinenlayout müsste mal jemand machen //hubel hubel//.
 ==== Weitere Fotos ===== ==== Weitere Fotos =====
  
project/spacewavr.1576459146.txt.gz · Zuletzt geändert: 2019-12-16 02:19 von xq