Okay, Ihr könnt meine folgende Frage gleich mit "Ja, du bist zu dämlich" beantworten. Frage: Bin ich zu dämlich mit Arduino und CH32V003 irgendetwas anderes zu bewerkstelligen als bloß Logikpegel auf einem Pin wackeln zu lassen? Hintergrund: Ich möchte mein serielles Bootloader-Board, welches ich jetzt überarbeitet habe und dessen Vorgängerschaltung und Firmware ich hier gepostet habe, tatsächlich Arduinotauglich machen (ich arbeite im Normalfall nicht mit Arduino). Grundsätzlich kann Arduino Codes compilieren und auch ein Upload in mein Board durch patchen von platform.txt und boards.txt funktioniert einwandfrei. Aber jede etwas erweiterte Funktion scheint nicht zu funktionieren. Ist der Core von hier: https://github.com/openwch/arduino_core_ch32 wirklich so fehlerhaft und unvollständig wie es sich mir darstellt oder mache ich grundlegend etwas falsch. Für mich stellt es sich so dar: - class Serial kann nur schreiben, lesen funktioniert nicht - Interrupthandler funktioniert nicht - Wire.h bedient i2c nicht korrekt - SPI.h ebensowenig Gerade versuche ich so etwas einfaches wie analogRead und das funktioniert natürlich genausowenig wie analogWrite. Für die obigen "Probleme" habe ich jetzt eigenständigen Ersatz geschrieben, der Funktionen bereitstellt, der die Funktionaltät der Hardware herstellt, aber es ist eben etwas ausserhalb der Standardklassen und ich weiß nicht ob das Sinn und Zweck der Übung ist, denn: für jedes SPI-Device, für jedes I2C-Device muß dann eine eigene "Library" geschrieben werden, weil alle Beispiele aus dem Netz dann darauf aufbauen (und eben nicht funktionieren). Momentan habe ich für CH32V003 dann geschrieben SPI-TFT Display, OLED-Display, TM16xx 7-Segmenttreiber, DS18B20, DHT11, LM75 ... etc. Irgendwie fühlt sich das an, als ob ich das gesamte Ökosystem neu aufsetze. Bin ich zu dämlich? :-) natürlich dürft ihr das mit "ja" beantworten
Ralph S. schrieb: > Gerade versuche ich so etwas einfaches wie analogRead und das > funktioniert natürlich genausowenig wie analogWrite. analogRead scheint zumindest implementiert zu sein: https://github.com/openwch/arduino_core_ch32/blob/main/cores/arduino/ch32/analog.cpp Vielleicht geht es ja trotzdem nicht, weil es auf einem anderen Prozessor probiert wurde. Ich werfe jetzt einfach mal eine Vermutung den Raum: Wahrscheinlich ist eines der #defines nicht aktiv
1 | #if (defined(CH32V20x) || defined(CH32V30x) || defined(CH32V30x_C) || defined(CH32V10x) || defined(CH32L10x) || defined(CH32VM00X) ) |
:
Bearbeitet durch User
Christoph M. schrieb: > Vielleicht geht es ja trotzdem nicht, weil es auf einem anderen > Prozessor probiert wurde. > > Ich werfe jetzt einfach mal eine Vermutung den Raum: Wahrscheinlich ist > eines der #defines nicht aktiv > #if (defined(CH32V20x) || defined(CH32V30x) || defined(CH32V30x_C) || > defined(CH32V10x) || defined(CH32L10x) || defined(CH32VM00X) ) ... sagen wir es einmal so: Der Core ist grundsätzlich irgendwie höchst unvollständig und höchst buggy. Aus diesem Grund, allerdings erst am Entstehen: siehe Anhang. Daraus werde ich dann am We eine weitere, rein spezielle Library für den CH32V003 machen!
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.