Forum: Projekte & Code MineSweeper für CH32V003 (Linux Makefile-Projekt)


von Ralph S. (jjflash)


Angehängte Dateien:

Lesenswert?

Nachdem in zu diesem Projekt thematisch dazugehörenden Thread

Beitrag "Rekursives Floodfill nach Iteratives Floodfill, wie mache ich das?"

mir sehr wertvolle Tips (insbesondere von Yalu) gegeben worden sind, 
habe ich nun mein altes MineSweeper-Programm auf einen CH32V003 
portiert.

Okay, eine lange Doku habe ich dafür nicht geschrieben, aber diejenigen, 
die sich mit dem CH32V003 beschäftigen sollten, so sie das nachbauen / 
"nachempfinden" wollen gut zurechtfinden.

Das Projekt baut auf dem Framework CH32FUN auf.

Grundsätzlich habe ich den MineSweeper auch schon auf den STM32F401 
portiert und sollte hierfür Interesse bestehen, kann ich das hier auch 
noch posten. Grundsätzlich sollte dieser MineSweeper auch auf einem 
ATmega328 laufen und wenn hier jemand tatsächlich daran Interesse hat, 
kann ich das auch noch zu AVR portieren (im Moment - weil immer noch 
krank - hatte ich schlicht keine Lust, ein AVR-System mit 4 oder 6 
Tasten aufzubauen).

Dieser MineSweeper hier kann mit 4 oder 6 Tasten gesteuert werden. 
Hierzu ist der Header keypad2_6.h zu modifizieren.

Wird hierin ein 6-Tastenmode eingestellt, gibt es für jede Funktion eine 
Taste. Eine PLUS-Taste markiert eine Mine, eine SPACE-Taste deckt ein 
Feld auf.

Werden an den V003 nur 4 Tasten angeschlossen, so entspricht ein 
Doppelklicken links dem Aufdecken eines Feldes (SPACE), ein 
Doppelklicken rechts dem Markieren einer Mine.

Für denjenigen den es interessiert: Viel Spaß damit.

Wie immer: Allen anderen viel Spaß beim Negativbewerten.

Gute Nacht und schön,
Ralph

PS: sorry für die schlechten Fotos, das Licht hier ist schlecht und mein 
neues Handy ist schlechter als mein Altes (grrr)... und auch der 
Schaltplan: Ich hatte jetzt nicht die Muse "lange" zu zeichnen und habe 
eben "nur" eine Skizze mit Gimp und Grafiktablet angefertigt. :-) man 
kann ja erkennen wie die Schaltung auszusehen hat (und ist ja auch 
absolut nichts "umwerfendes" zu sehen).

von Ralph S. (jjflash)


Angehängte Dateien:

Lesenswert?

Mist, ein  Bild ist falsch, wird hiermit nachgereicht.

von Ralph S. (jjflash)


Angehängte Dateien:

Lesenswert?

Jetzt habe ich aus lauter Jux und Dollerei den MineSweeper auch für 
einen ATmega328 portiert und bin erstaunt, dass die Ansteuerung eines 
TFT-Displays mit AVR 16 MHz so richtig langsamer als CH32V003 ist (für 
einen STM32F4 habe ich es auch gemacht).

:-) dafür hat der ATmega 32 kByte Flash, was für ein schöneres Logo 
gereicht hat.

Alle benötigten Dateien sind im Archiv, zum Übersetzen wird ein 
systemweit installierter avr-gcc sowie ein avrdude zum Flashen 
voraussgesetzt.

Das ganze ist ein "Makefile-Projekt", deshalb in den Ordner wechseln und 
dort

make

eingeben um das Spiel zu kompilieren.

Im Makefile selbst kann der Programmer gewählt werden, mit dem das Spiel 
geflasht werden soll.

Da das ganze mit einem Arduino-Nano auf einem Steckbrett realisiert ist, 
ist im Makefile als Standard der Arduino-Bootloader eingetragen. 
Natürlich kann das Programm auch mit einem externen Programmer geflasht 
werden
1
Anschlussbelegung AVR ATmega328 zu TFT-Display und Tasten
2
----------------------------------------------------------------
3
4
5
TFT-Display ST7735     ATmega328 (Arduino)       Buttons
6
-----------------------------------------------------------
7
8
        SDA  -----------  PB3 (11)
9
        CLK  -----------  PB5 (13)
10
        RST  -----------  PD6 (6)
11
        DC   -----------  PD7 (7)
12
        CS   -----------  PB2 (10)
13
14
                          PC0 (A0) ----------  Taste links      *
15
                          PC1 (A1) ----------  Taste hoch
16
                          PC2 (A2) ----------  Taste nach unten
17
                          PC3 (A3) ----------  Taste rechts     **
18
19
20
*  : Taste links fungiert mit einem Doppelklick zum Aufdecken eines
21
     Feldes
22
23
** : Taste rechts fungiert mit einem Doppelklick zum Markieren
24
     eines Feldes unter dem eine Mine liegt

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.