Aktywne Wpisy

Bambrx +837
#famemma
Jeżeli tak samo jak ja nie zamierzasz finansować pdfa, to plusik i na PW link do lestlima.
(2 linki)
Jeżeli tak samo jak ja nie zamierzasz finansować pdfa, to plusik i na PW link do lestlima.
(2 linki)
źródło: Screenshot_2024-02-10-17-41-51-664-edit_com.opera.browser
Pobierz
kamil-tika +298
Brutalny wzrostpill dotarl nawet i do reklam. Programowanie kobiet i obrazanie nizszych facetow to juz widze standard w kazdej sferze zyciowej. Idzcie opyerdolcie sobie serek z mlekovity moze urosniecie wyzsi ( ͡° ͜ʖ ͡°)






Posiadam enkoder inkrementalny HC-020K - 3 piny: VCC, GND i OUT. Na wyjściu mam generowany sygnał prostokątny.
Chcę go teraz obsłużyć przez mikrokontroler STM32F4. Wymyśliłem sobie, że będę badał wystąpienie zbocza narastającego w czasie za pomocą Timera1 i na tej podstawie odczytam prędkość obrotu tarczy. Wartości wyświetlam na LCD-ku.
Niestety odczyt nie działa jak należy. Wartości się zmieniają, jednak nie ma tam żadnej reguły, wartość odczytu skacze o dziesiątki, a nawet setki jednostek. Proca taktuję na 168MHz. Częstotliwość pomiarów powinna wynosić ok. 100 kHz.
Pytanie podstawowe - czy timer jest dobrze skonfigurowany na odczyt wartości? Czy zakłócenia związane z zasilaniem mogą aż tak mącić wynik? Co jeszcze może mieć wpływ?
Jestem wdzięczny za każdą pomoc i poradę, siedzę nad tym już trzeci dzień.
Mój kod: http://pastebin.com/QCZsBs8c
#stm32 #mikrokontrolery #elektronika
licz impulsy poprzez wymuszenia, tak przynajmniej obsluguje enkodery na avr ;)
Zupełnie nie odnośnie stm32 - ale tak ogólnie.
Nie możesz zapodać tego sygnału na jakieś wejście sprzętowego przerwania (generujące przerwanie sprzętowe)?
W przerwaniu od timera - zliczasz sobie czas (jakiś rejestr/zmienną inkrementujesz). Powiedzmy że masz przerwania od timera co 1us. Czyli zliczasz us w zmiennej "Tliczone"
W przerwaniu od sygnału z enodera - przepisujesz wartosc zmiennej "Tliczone" do "Tzmierzone" i zerujesz "Tliczone"
W Tzmierzone masz
2. Ustawiasz timer żeby liczył z oczekiwaną rozdzielczością
3. W obsłudze przerwania odczytujesz i zerujesz timer, wartość odczytana łatwo przeliczania na obroty jest.
4. Dodatkowo przepełnione tunera może generować sygnał o zatrzymaniu enkodera.