So, natürlich werde ich bestimmt wieder "verhauen" aber vllt. gibt es ja auch konstruktive Stellungsname.
Nachdem hier ab und an für billigste Mikrocontroller (neben PFS154) eben auch CH32V003 auftaucht, habe ich mich jetzt doch dazu durchgerungen mich mit diesem (dann neben STM32) auch zu befassen. Da mir das Herstellerpaket "mounriver" dann doch ein Brocken zu arg ist und ich sowieso meine Dinge mittels Editor(en) und Makefiles erstelle, befasse ich mich jetzt eben auf der Basis von ch32v003fun.
Da mir der Aufbau und die Benennung der Funktionsnamen nicht so gefällt (weil er in mein Schema der von mir benutzten anderen Controllerfamilien nicht so passt), passe ich mir dieses Framework jetzt an meine Gegebenheiten an und stolpere gleich zu Beginn an den GPIO's.
Mir gefällt bspw. das Initialisieren eines Pins als Ausgang oder Eingang respektive das Setzen/Löschen eines Pins in Form von funPinMode und funDigitalWrite so gar nicht, also möchte ich das durch meine eigenen Namen ersetzen (und dabei auch einigen Overhead von ch32v003fun beseitigen).
Natürlich schaue ich mir hierbei an, wie der Autor von ch32fun das gemacht hat und durchforste dessen Headerdateien (die ich weiter verwenden möchte, weil ich aus dem Datenblatt nicht das Rad noch einmal neu erfinden will).
Also Datenblatt zur Hand genommen und geschaut, was ch32fun so macht (und hier <ironiean> freue <!ironieaus> ich mich schon einmal über die Darstellungen im Datenblatt, weil ich mir erst einmal das Hirn verrenken muß, wie etwas dargestellt ist).
Im Speziellen geht es mir hier jetzt um das CFGLR Register (welches ich im Aufbau schon etwas "merkwürdig" finde).
Lt. Datenblatt sind die Bits 0 und 1 Modebits und im speziellen für den Takt der GPIOs zustäandig (bzw. Inputmode)... siehe Bildanhang
Hier soll es lt. Datenblatt 10MHz, 2MHz und 30MHz geben. Hier ist gesagt, dass im gesamten Datenblatt es ausser der Busfrequenz keinen Hinweis auf 50MHz gibt.
In einer Headerdatei hat der Autor die Taktfrequenzen folgendermaßen deklariert:
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
Nach diesem Enumerator bekomme ich für die Bezeichnung GPIO_Speed_50MHz den Wert 3. Lt. Datenblatt müßte das dann doch GPIO_Speed_30MHz heißen, oder sehe ich das falsch?

