eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › BluePill ciekawostka
Ilość wypowiedzi w tym wątku: 3

  • 1. Data: 2024-01-06 17:38:54
    Temat: BluePill ciekawostka
    Od: JS <b...@p...onet.pl>

    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


  • 2. Data: 2024-01-06 18:28:35
    Temat: Re: BluePill ciekawostka
    Od: heby <h...@p...onet.pl>

    On 06/01/2024 17:38, JS wrote:
    > 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.


  • 3. Data: 2024-01-06 23:29:12
    Temat: Re: BluePill ciekawostka
    Od: "Grzegorz Niemirowski" <g...@g...net>

    JS <b...@p...onet.pl> napisał(a):
    > 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/

strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: