Forum: Mikrocontroller und Digitale Elektronik Arduino und CH32V003


von Ralph S. (jjflash)


Angehängte Dateien:

Lesenswert?

Vorneweg: ich programmiere nicht (normalerweise) mit Arduino, aber da im 
Forum hier und auch ausserhalb des Forums angemerkt wurde, dass es doch 
"fein" wäre man könnte mein Bootloaderboard auch mit Arduino 
programmieren habe ich mich doch tatsächlich hingesetzt und einige 
Funktionen für Arduino in ihre sogenannten "Libraries" umgesetzt, was da 
heißt, ich habe da tatsächlich etwas im Arduino-Style umgesetzt.

Um jetzt diese Libraries zu demonstrieren bietet es sich normalerweise 
an, diese über UART (in Arduino Serial.print, Serial.read etc.) 
anzusprechen.

Das funktioniert aber (zumindest bei mir) nicht und befürchte, dass 
dieses am Core liegt (ich verwende 1.0.3).

Allerdings könnte es auch sein, dass ich da grobe Fehler mache.

Beholfen habe ich mir, dass ich Lesefunktionen dann über 
Registerzugriffe mache, um Funktionen demonstrieren zu können.

Erste Frage: ist so etwas legitim in Arduino?

Zweite Frage: kann das jemand in dem typischen Arduino-Style und mag 
seine Lösung hier mitteilen (damit ich nicht den Core durchkämmen muß)?

Codes meiner Lösung zum Lesen von der UART Schnittstelle innerhalb eines 
Beispielprogramms für einen DS3231 RTC-Chip (damit ich dort eben die 
Uhrzeit stellen kann)

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Habe deinen µC nicht!

Aber die Funktion würde bei mir so, oder so ähnlich, aussehen:
1
char uart_getchar()
2
{
3
  int c;
4
  do
5
  {
6
    c = Serial.read()
7
  }
8
  while (c < 0);
9
  return c;
10
}

: Bearbeitet durch User
von Ralph S. (jjflash)


Lesenswert?

... und genau das funktioniert mit  CH32V003 nicht. So, oder so ähnlich 
war der erste Ansatz. Jetzt bin ich am ünerlegen, ob ich eine Klasse 
'UART' anlegen soll, aber dann komm ich immer weiter weg von der 
typischen 'Arduino Optik' und ob das für andere dann zielführend ist?

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Ralph S. schrieb:
> ... und genau das funktioniert mit  CH32V003 nicht.
Das ist schade!

Ralph S. schrieb:
> befürchte, dass
> dieses am Core liegt (ich verwende 1.0.3).
Es gibt verschiedene cores für den µC.

: Bearbeitet durch User
von Ralph S. (jjflash)


Lesenswert?

Arduino F. schrieb:
> Ralph S. schrieb:
>> befürchte, dass
>> dieses am Core liegt (ich verwende 1.0.3).
> Es gibt verschiedene cores für den µC.

Ich finde im Netz nur 2 verschiedene Cores:

https://github.com/AlexanderMandera/arduino-wch32v003

https://github.com/openwch/arduino_core_ch32

Ich verwende den von openwch, weil der von Alexander Mandera deutlich 
unausgereifter ist und einige Funktionen schlicht nicht implementiert 
hat.

von Ralph S. (jjflash)


Angehängte Dateien:

Lesenswert?

Ich habe jetzt das im Anhang (auf die Schnelle) gemacht.

Wie sehen diejenigen die 'uart_test2.ino' Datei, die mit Arduino 
hantieren?

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Hmm...

Arduino User würden erwarten, dass eine UART Klasse von Stream und damit 
auch von Print erbt.

von Ralph S. (jjflash)


Lesenswert?

Arduino F. schrieb:
> Arduino User würden erwarten, dass eine UART Klasse von Stream und damit
> auch von Print erbt.

okay, dann schau ich mal, ob ich das print (welches ich so überhaupt gar 
nicht mag: Serial.print) ererben kann.

Also noch ein bischen mehr in die Tiefe von Arduino gehen.

Grundsätzlich finde ich ja printf um Längen flexibler... aber jetzt habe 
ich angefangen, jetzt will ich auch wissen wie das geht und was genehm 
ist.

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.