Hi,
ich teste gerade eines der neuen Robotdyn Blackpill-Boards mit
APM32F103. Soweit funktioniert auch das meiste, CAN, PWM, SPI, ...
Nur mit dem ADC habe ich ein sehr seltsames Verhalten, was ich mir
überhaupt nicht erklären kann.
Folgender minimalcode reicht dazu, sowohl mit Arduino+Maple als auch
Platformio mit neustem ststm32+arduino (ist glaube ich seit kurzem nicht
mehr maple core).
1 | void setup() {
|
2 | pinMode(PA0, INPUT_ANALOG);
|
3 | Serial.begin(9600);
|
4 | }
|
5 | void loop() {
|
6 | int sensorValue = analogRead(PA0);
|
7 | Serial.println(sensorValue);
|
8 | delay(100);
|
9 | }
|
Test: variable Spannung an PA0, Kerko, Oszi+DMM zur Kontrolle.
Wenn ich nun z.B. 0.5V anlege bekomme ich auch grob plausible 550+/-
angezeigt (Robotdyn jagt 3.64V auf Vcc...). Langsame Veränderungen
werden korrekt ausgewertet.
Wenn ich dann z.B. schnell auf 2.4V aufdrehe, dann kurz auf 0 und dann
wieder 0.5V konstant passiert manchmal in etwa folgendes:
Der ADC-Readout bleibt kurz bei 70, geht dann ueber etwa 10 sec sehr
gleichmäßig rauf auf ca. 700, dann auch ebenso langsam und gleichmäßig
wieder auf ca. 200 und bleibt in dem Bereich erstmal hängen. Manchmal
schwingt es auch wieder nach oben.
Der ADC "reagiert" dabei schon noch auf Veränderung, aber es bleibt bei
einem fehlerhaften, langsam schwingenden Faktor.
Jemand eine Idee, was das sein könnte?