JS
Guest
Sat Jan 06, 2024 6:38 pm
Jest sobie GOŁY!! BluePill, podłączone tylko zasilanie i STlink.
Wpisuję do niego:
#include <Arduino.h>
void setup() {
analogWrite(PA11,150);
analogWrite(PA7,50);
analogWrite(PA8,100);
analogWrite(PA6,20);
}
void loop() {
// put your main code here, to run repeatedly:
}
efekt jest taki, że albo na PA7, albo na PA8 nie ma przebiegu, zależnie
od kolejność wywołania analogWrite. Na PA6 i PA11 PWM jest zawsze.
platformio.ini:
[env:bluepill_f103c8]
platform = ststm32
board = bluepill_f103c8
framework = arduino
debug_tool = stlink
upload_protocol = stlink
monitor_speed = 115200
Spotkaliście się z czymś takim?
Pozdrawiam
JS
heby
Guest
Sat Jan 06, 2024 7:28 pm
On 06/01/2024 17:38, JS wrote:
Quote:
void setup() {
analogWrite(PA11,150);
analogWrite(PA7,50);
analogWrite(PA8,100);
analogWrite(PA6,20);
}
void loop() {
// put your main code here, to run repeatedly:
}
A jak przeniesiesz kod do loop() to co się stanie?
W arduino mocno mgliste jest kiedy i w jaki sposób wołane jest setup().
Szczególnie interesujące są problemy z kolejnością globalnych
konstruktorów itd. Wątpie, aby to był problem tutaj, ale po prostu
sprawdź, co będzie, jak to wsadzisz w loop.
Grzegorz Niemirowski
Guest
Sun Jan 07, 2024 12:29 am
JS <bsj@poczta.onet.pl> napisał(a):
Quote:
Jest sobie GOŁY!! BluePill, podłączone tylko zasilanie i STlink.
Wpisuję do niego:
#include <Arduino.h
void setup() {
analogWrite(PA11,150);
analogWrite(PA7,50);
analogWrite(PA8,100);
analogWrite(PA6,20);
}
void loop() {
// put your main code here, to run repeatedly:
}
efekt jest taki, że albo na PA7, albo na PA8 nie ma przebiegu, zależnie od
kolejność wywołania analogWrite. Na PA6 i PA11 PWM jest zawsze.
W Arduino zarówno PA7 jak i PA8 mają przypisany 1 kanał z timera 1. Stąd oba
piny konkurują o to samo i jest konflikt. Arduino robi sobie różne rzeczy
pod spodem i potem mamy takie niezrozumiałe, dziwne zachowania. Trzeba się
wgłębiać w źródła stm32duino żeby dojść co jest nie tak. Niby Arduino jest
proste, ale kosztem m.in. takich pułapek.
--
Grzegorz Niemirowski
https://www.grzegorz.net/