Skocz do zawartości

Kurs STM32L4 – #8 – liczniki sprzętowe (PWM, enkoder)


Pomocna odpowiedź

Cieszę się, że problem rozwiązany, a dla formalności dodam jeszcze przypomnienie, że te enkodery występują w 2 wersjach, które wyglądają identycznie, a ich działanie jest nieco inne. Więcej na ten temat pisaliśmy na wcześniejszych stronach tego tematu: https://forbot.pl/forum/topic/20099-kurs-stm32l4---8---liczniki-sprzetowe-pwm-enkoder/page/2/#comment-165141

 

Link do komentarza
Share on other sites

@michalkepka zmień dla testu priorytety przerwań na takie jak były w kursie (kolumna Preemption...) na Twoim ostatnim zrzucie ekrany. Podczas tworzenia kursu Cube ustawiał domyślnie inne priorytety. Jeśli to nie pomoże to dodaj jako załącznik (archiwum zip) swój projekt - sprawdzę go dokładnie 🙂

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Udało mi się w końcu usiąść do tego kursu i coś porobić. Poniżej znajduje się film z działania symulatora trójfazówki. Jest zrobiony w całości na timerach (PWM) i przerwaniach (tj pętla główna jest pusta). Mamy tablicę która przechowuje wartości sinusa oraz 3 zmienne wskazujące na indeks, który ustala wartość PWM. Przerwanie od licznika o okresie 15ms odpowiada za inkrementację indeksów tak aby wartości PWM na poszczególnych "fazach" zmieniały się tak jak w sinusoidzie. Generalnie wygląda to jakby migała jedna na raz ale to kwestia tego że od pewnego momentu ciężko uchwycić zmiany jasności).

20230712_213704 - Trim.gif

Edytowano przez daneil737
dodanie wyjaśnienia dlaczego wygląda jakby migała jedna dioda na raz
  • Lubię! 1
Link do komentarza
Share on other sites

Jeden z czytelników zgłosił drobny błąd w tej części kursu, który właśnie poprawiłem.

Było:

Cytat

W dokumentacji mikrokontrolera znajdziemy informację, do której magistrali podłączony jest dany licznik – liczniki od TIM2 do TIM7 są podłączone do magistrali APB2, a pozostałe do APB1.

Powinno być:

Cytat

W dokumentacji mikrokontrolera znajdziemy informację, do której magistrali podłączony jest dany licznik – liczniki od TIM2 do TIM7 są podłączone do magistrali APB1, a pozostałe do APB2.

Link do komentarza
Share on other sites

[..](czyli częstotliwość może być dzielona przez wartości od 1 do 65 536).

powinno być oczywiście 65 535. ok czytam dalej i pozdrawiam

Aktualizacja:

Można też było rozwinąć obsługę enkodera i pokazać przykład na np. przerwaniach lub DMA zamiast na odpytywaniu.

można wykorzystać tutaj: void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)

a w niej:

HAL_TIM_ReadCapturedValue();

__HAL_TIM_IS_TIM_COUNTING_DOWN()

Czyli odczyt wartości i kierunku obrotu enkodera. Sprawdzałem i ładnie działa ( testuje na STMG031 ale to nie ma znaczenia)

  • Lubię! 1
Link do komentarza
Share on other sites

Preskaler ustawiony na 65535 daje w efekcie podział częstotliwości przez 65536, wiec ja tutaj błędu nie widzę.

A co do reszty uwag, to kurs nie opisuje wszystkich możliwości stm32, trzeba było tematy do omówienia wybrać, a z wielu rzeczy zrezygnować.

Edytowano przez Elvis
  • Lubię! 1
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.