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



Teraz jest 23 mar 2026, o 12:47


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
 Tytuł: Problem z PWM
PostNapisane: 11 lut 2014, o 12:10 
Offline
Użytkownik

Dołączył(a): 26 lip 2013
Posty: 29
Pomógł: 3

Witam,
Mam problem przy używaniu PWM i ADC. Za każdym razem przy obliczaniu wartości do PWM rejestry przepełniają się i nie mogę zrobić całości obrotu serwa. Gdy sprawdzałem wartości 100*ADC/1023 na wyświetlaczu to zawsze dochodziło do wartości 63. Nie wiem co z tym zrobić ponieważ nawet przy ustawieniu typu na int16_t i int32_t wszystko się powtarza.Nie wklejam biblioteki ADC ponieważ pochodzi z książki pana Mirka.
main.c:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lut 2014, o 13:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 maja 2013
Posty: 562
Lokalizacja: Bydgoszcz
Pomógł: 23

Wiesz co nie jestem do końca pewien to co mówię ale można użyć dłuższej liczby dopisując UL. Mi to kiedyś pomogło podczas przeliczania wartości z ADC do PWM dla serwa.

Umnie wyglądało to tak:

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


Autor postu otrzymał pochwałę


Ostatnio edytowano 11 lut 2014, o 13:15 przez Intre, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lut 2014, o 13:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

Kodu nie analizowałem ale pierwsze co mi przyszło na myśl to http://www.atnel.pl/domyslna-promocja-do-typu-int.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lut 2014, o 13:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 lut 2013
Posty: 600
Pomógł: 47

To niema prawdopodobnie znaczenia z twoim problemem ale zastanawia mnie poco jest średnik za klamrą
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
https://www.instagram.com/myfirstquadcopter/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lut 2014, o 14:09 
Offline
Użytkownik

Dołączył(a): 26 lip 2013
Posty: 29
Pomógł: 3

Intre napisał(a):
Wiesz co nie jestem do końca pewien to co mówię ale można użyć dłuższej liczby dopisując UL. Mi to kiedyś pomogło podczas przeliczania wartości z ADC do PWM dla serwa.

Umnie wyglądało to tak:

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


Nie do końca wiem jak to działa, ale działa :) bardzo dziękuję za pomoc :)

jacekk232 napisał(a):
Kodu nie analizowałem ale pierwsze co mi przyszło na myśl to http://www.atnel.pl/domyslna-promocja-do-typu-int.html


Tak, tak wiem o tym. Nie pisałem tego, ale próbowałem także rzutowanie najpierw na float, a dopiero później na inta, ale też bez skutku.

kurnachatka napisał(a):
To niema prawdopodobnie znaczenia z twoim problemem ale zastanawia mnie poco jest średnik za klamrą
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Musiał się zaplątać :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lut 2014, o 20:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

filip napisał(a):
Nie do końca wiem jak to działa, ale działa bardzo dziękuję za pomoc

Chodzi o to, że domyślnie działania wykonywane są na zmiennej 16-bitowej, a dodatek w postaci literek "UL" w wyrażeniu powoduje, że obliczenia będą robione na zmiennej Unsigned Long czyli zmieści się dużo więcej niż 65535 i końcowy wynik po podzieleniu przez 1023 po przypisaniu będzie prawidłowy.


Autor postu otrzymał pochwałę

_________________
http://www.sylwekkuna.com



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: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO