Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 28 mar 2024, o 14:29


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 14 maja 2017, o 05:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 kwi 2016
Posty: 35
Pomógł: 0

W ramach nauki napisałem testowy kod do odczytu wartości sygnału PWM, wysyłanego np. przez odbiorniki modelarskie. Program działa bardzo ładnie, także przy różnych źródłach i częstotliwościach taktowania. Trzeba tylko uważać, aby timer nie pracował w zakresie zbyt bliskim zakresu zmiennych (int16_t), bo wtedy czasem występuje przepełnienie licznika. W sumie nie wiem dlaczego, ale może zdarza się, że ICP nie wyłapie poprawnie zbocza opadającego. To jednak zasadniczo nieistotne. Jeśli trzyma się wartości licznika w rozsądnych granicach, takie zachowanie nie występuje wcale.

Kod załączam poniżej - może komuś się przyda, a jednocześnie proszę o uwagi i komentarze. Na pewno coś można zrobić lepiej / szybciej, a dla mnie okazja do nauki.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Planuję napisać podobny program, ale z wykorzystaniem zwykłych przerwań zewnętrznych - tak by działał na ATtiny, które we większości nie mają ICP. Jakieś sugestie jak podejść to takiego zadania? Wydaje się to w miarę proste, choć prawdopodobnie dokładność pomiaru będzie mniejsza.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2017, o 23:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 21 sie 2014
Posty: 90
Pomógł: 0

taszyn napisał(a):
jednocześnie proszę o uwagi i komentarze.

Ze swojej strony moge powiedzieć, że w Green Booku jest bardzo ładnie opisane jak podchodzić do komunikacji tego typu. Bez delay`ów, bez zawalania pętli głównej. Jeżeli chciałbyś napisać coś w ten deseń, poczytaj o callbackach i eventach. No i warto, mimo wszystko, podzielić projekt na osobne pliki (main, pliki .c, oraz headery) to naprawdę ułatwia życie.
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lip 2017, o 11:09 
Offline
Użytkownik

Dołączył(a): 30 paź 2016
Posty: 45
Lokalizacja: Poznań
Pomógł: 0

Witajcie!

Mam do Was pytanie dotyczące tematu postu.
Buduję wskaźnik procentowego wypełnienia PWM. Wykorzystałem do tego bibliotekę z Blue Booka, RC5.
Wszystko pięknie działa, ale...
Mierzę wypełnienie z multiwibratora z podłączonym równolegle miernikiem fabrycznym i jest ok. Wcałym zakresia pomiary są identyczne. Kiedy jednak podłączę w miejsce generatora sterownik ECU, który też generuje PWM na wyjściu diagnostycznym, wynik na moim wskaźniku jest odwrotny, w czasie kiedy miernik fabryczny wskazuje poprawny wynik. Czyli na fabrycznym mierniku mam 70%, a na moim wskaźniku jest 30%.
Domyśla się może ktoś gdzie leży przyczyna?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lip 2017, o 14:30 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

Podłącz oscyloskop i porównaj oba przebiegi.

Sent from my Mi-4c using Tapatalk



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lip 2017, o 18:46 
Offline
Użytkownik

Dołączył(a): 30 paź 2016
Posty: 45
Lokalizacja: Poznań
Pomógł: 0

Wszystko jest ok, się zakręciłem trochę. Myślałem że w zależności czy mierze względem masy czy plusa, będą inne wyniki. Okazuje sie, że dla multimetru to bez znaczenia, zawsze pokazuje 70%.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 7 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO