Beim (immer noch andauernden) Evaluieren was ein CH32V003 kann (und was nicht) habe ich ein altes Spieleprogramm auf den Chip portiert, der im Ursprung einmal als JavaScript kodiert, danach auf einen ATmega portiert war. Jetzt habe ich das weiter auf eben einen CH32V003 portiert. Hier ging es mir erst einmal nur darum, die "KI" des Spiels auf den Chip zu portieren um zu sehen, wie groß das Compilat werden wird. Aus diesem Grund geschieht die Visualisierung des Spiels in in einem seriellen Terminal (Putty, Picocom o.ä.). Wahrscheinlich werde ich dieses Programm noch weiter bearbeiten, damit das VierGewinnt auch in Verbindung mit einem grafischem Display funktioniert. Das Programm selbst setzt auf dem CH32FUN von Christian Lohr auf, das ich auf das wesentliche "gestrippt" habe, weil ich definitiv andere MCU's als den V003 nicht bearbeiten möchte. Zudem habe ich dann das Framework selbst in einen Ordner im Projektverzeichnis abgelegt und das Makefile meinen Gegebenheiten angepasst. Hier heißt das, dass systemweit der Compiler riscv-none-elf-gcc sowie das Kommandozeilentool minichlink verfügbar sein muß. Das Makefile selbst wurde so bearbeitet, dass es bei einem Aufruf nicht mehr automatisch einen Compiler-Linkergang und einen Flashvorgang vornimmt, sondern lediglich compiliert und linkt. Ein Flashvorgang muß mit make flash gestartet werden. Ein Auspacken des hier angehängten Archivs in ein Verzeichnis und ein dortiges Starten des Makes reicht aus um das Programm zu übersetzen. Die zusätzlich zum VierGewinnt Spiel benötigten Dateien habe ich in einer kleinen Dokumentation beschrieben und hier ebenfalls im Anhang hinzugefügt. Wenn das jemand ausprobieren mag: Viel Spaß damit. Zur KI: Die KI ist "relativ" spieleschwach, da ich meine stärkere KI des Spiels (Mini-Max-Algorithmus) aufgrund des wenigen RAM nicht verwenden konnte. Für ungeübte Spieler und Kinder kann das aber dennoch schon eine Herausforderung sein, gegen das Programm zu gewinnen. Nein, ich brauche keine Belehrung über andere Chips der CH32-Familie. Ein (deutlich) und schwer zu schlagendes VierGewinnt habe ich für einen STM32F103 / F401 schon (auch mit Display) realisiert. Hier geht es "nur" darum, was eben der V003 und was nicht!
> Jetzt habe ich das weiter auf eben einen CH32V003 portiert. Wenn du damit fertig bist koenntest du noch einen der alten Schachkernel portieren. Wollte ich auch immer schon mal machen. .-) > Das Programm selbst setzt auf dem CH32FUN von Christian Lohr auf, das > ich auf das wesentliche "gestrippt" habe, Hehe, so arbeite ich auch. > Beim (immer noch andauernden) Evaluieren was ein CH32V003 kann Eigentlich gibt es da gar nicht so viel zu evaluieren. Sie koennen im grossen und ganzen das was im Datenblatt steht. Haben IMHO relativ schoene Peripherie, also adc, uart usw. Interessant ist das sie beim SOT8 mehrere Pins zusammen gebondet haben. Doof ist das sie beim SOT16 das nicht gemacht haben und man so eines der SPI Signale nicht zur Verfuegung hat. :-( Die einzig echte Schwaeche ist IMHO das sie nicht doll bei Lowpower sind. Vanye
Vanye R. schrieb: > Wenn du damit fertig bist koenntest du noch einen der alten Schachkernel > portieren. Wollte ich auch immer schon mal machen. .-) Na ja, Schach ist so eine Sache, da bin ich schon länger dran (allerdings nicht für CH32). Grundsätzlich läuft das super auf STM32F4 ... Die Schach-KI ist halt nicht von mir. Das VG hier dann doch. Beim Schach will ich bestimmt schon 3 oder 4 Jahre das auf einem grafischen Display umsetzen ... und habe das nie gemacht. Immer nur die übliche Schach-Textnotation. Im Moment habe ich dieses VG hier auch auf einem Display am laufen, aber für grafische Dinge habe ich gerade nicht meine Tools zur Hand (bin gerade stationär im Krankenhaus und auf dem Rechner den ich mit habe, habe ich nicht alle Tools drauf). :-) Zeit, Dokumentationen zu schreiben
> Na ja, Schach ist so eine Sache, da bin ich schon länger dran > (allerdings nicht für CH32). Grundsätzlich läuft das super auf STM32F4 Klar, laeuft das auf einem F4. Es lief ja auch mal auf einem ZX81 mit 1k Ram. :-D Mit etwas suchen findet man diverse alte C-Sourcen im Netz die auf so einem kleinen Controller lauffaehig sein sollten. Ich hab mir die schonmal weggelegt und wollte das irgendwann mal machen. Das schoene daran ist ja das man so einen Schachcomputer hat gegen den man noch gewinnen kann. Und Grafik braucht man noch nicht mal unbedingt. Es reicht ja wenn da am Ende "c2-c4" steht. Den Rest kann man dann ja je nach Faehigkeit im Kopf oder auf einem schoenen Holzbrett. .-) Vanye
Vanye R. schrieb: > Es > reicht ja wenn da am Ende "c2-c4" steht. Für solche Sachen gibts doch schon seit 1000 Jahren das Minimalschach für den AVR ... und in extrem kryptischem C-Code
... so, jetzt habe ich auch einmal die Version mit dem Display gemacht (aus verschiedenen Gründen hatte ich jetzt einmal etwas Zeit) und habe dann auch gleich einen Bug aus meinem Makefile entfernt. Auch hier gilt wieder: es bedarf eines systemweit installierten Compiler und einem Flashprogram 'minichlink'. Optionen für make sind: <kein Argument> build, clean, flash In Ermangelung meines normalen Equipments (und somit einem installierten Programm zum Erstellen eines Schaltplans) habe ich einen Schaltplan im Ascii-Format erstellt, allerdings sollte sowieso klar sein, wie das zu verschalten ist: Außer 4 Tasten, dem Anschluß des Displays und 2 Kondensatoren über den Betriebsspannungen braucht die Schaltung nichts weiter. Zum Display ist zu sagen: ich hatte ein ST7735 verwendet. In der Datei stxx_display.h im Verzeichnis 'include' kann jedoch auch ein anderes Display ausgewählt werden und auch die Auflösung (die momentan auf 128x160 Pixel eingestellt ist) kann durch ein anderes Display (bspw. 128x128) ersetzt werden. Wer das Dingelchen aufbaut: Viel Spaß damit.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.