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



Teraz jest 24 mar 2026, o 02:50


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
 Tytuł: ICP
PostNapisane: 15 lis 2014, o 17:36 
Offline
Użytkownik

Dołączył(a): 28 cze 2013
Posty: 99
Pomógł: 2

Witam
Chciałbym zmierzyć impulsy serwo Oto kod, który działa, ale
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


chciałbym teras przeliczyć na mikro sekund w BB jest makro ,Nie wiem jak z niego korzystać.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Dziękuję bardzo



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ICP
PostNapisane: 15 lis 2014, o 17:58 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

skoro jest makro to na pewno jest też i przykład jego zastosowania.
zobacz 3 linijki niżej ;-)

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ICP
PostNapisane: 15 lis 2014, o 19:10 
Offline
Użytkownik

Dołączył(a): 28 cze 2013
Posty: 99
Pomógł: 2

Tak tu jest ale ja tego nierozumie
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  
 Tytuł: Re: ICP
PostNapisane: 15 lis 2014, o 19:20 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

No przecież wszystko jest ładnie wytłumaczone i wszystko można z tej linijki wyczytać.
Wszędzie tam gdzie preprocesor napotka na słowo MAX_BIT zastąpi je wyliczonym wyrażeniem
((889+889+TOLERANCE) * (F_CPU / 1000000/8))
Czyli jakąś tam wyliczoną stałą

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ICP
PostNapisane: 15 lis 2014, o 20:23 
Offline
Użytkownik

Dołączył(a): 28 cze 2013
Posty: 99
Pomógł: 2

tak jak to przeliczyć na mikro sekundy zmienna PulseWidth = 1728



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ICP
PostNapisane: 16 lis 2014, o 08:43 
Offline
Użytkownik

Dołączył(a): 28 cze 2013
Posty: 99
Pomógł: 2

Nikt mi nie pomoże



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ICP
PostNapisane: 16 lis 2014, o 11:20 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

No ale co jeszcze pozostaje niejasne?
Chyba źle do tego podchodzisz ;-)
Tzn co innego myślisz a to makro co innego robi :P

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ICP
PostNapisane: 16 lis 2014, o 12:00 
Offline
Użytkownik

Dołączył(a): 28 cze 2013
Posty: 99
Pomógł: 2

Tak to będzie
MirkoT napisał(a):
Tzn co innego myślisz a to makro co innego robi :P

Chcę zrobić , przeliczyć na mikro sekundy zmienna PulseWidth = 1728



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ICP
PostNapisane: 16 lis 2014, o 12:14 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

Piszę z głowy czyli jak to mówią niektórzy z niczego, więc w razie czego proszę żeby Ktoś mnie skorygował.

Otóż zobacz do czego używasz tej wyliczonej wartości?
Mikrosekundy masz tutaj: ((889+889) + TOLERANCE)
No i teraz pytanie. Na co to jest przeliczane?
Moim zdaniem na ilość impulsów zliczonych przez licznik.
Ot i cała tajemnica.

------------------------ [ Dodano po: 2 minutach ]

A i jeszcze jedno. Jeśli chcesz z powrotem mieć mikrosekundy musisz
dokonać odwrotnego przeliczenia. Pozwól jednak, że nie będę pisał
jak to zrobić bo to zadanie z, no nie wiem 5 klasy?, szkoły podstawowej ;-)

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ICP
PostNapisane: 16 lis 2014, o 12:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 16 lut 2014
Posty: 96
Lokalizacja: Łódź
Pomógł: 6

ir_micro_s(PulseWidth) zwróci Ci mikrosekundy jeśli dobrze pamiętam

Wysłane z mojego GT-S7710



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ICP
PostNapisane: 16 lis 2014, o 12:44 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

HCOOH napisał(a):
ir_micro_s(PulseWidth) zwróci Ci mikrosekundy jeśli dobrze pamiętam

Wysłane z mojego GT-S7710

To zależy od F_CPU ;-)
Dla 8000000 akurat tak będzie ;-)

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ICP
PostNapisane: 16 lis 2014, o 14:10 
Offline
Użytkownik

Dołączył(a): 28 cze 2013
Posty: 99
Pomógł: 2

Jaki jest na to wzór dla innych F_CPU ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ICP
PostNapisane: 16 lis 2014, o 14:16 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

taki sam ;-)
Dlatego taki jest. A preprocesor podstawia odpowiednie wartości do wzoru.
No ale pomyśl chwilkę. Dlaczego dla 8000000 wychodzi tak samo?
hint: mnożenie przez jeden i dzielenie przez jeden daje tyle samo ;-)
To zwykłe przekształcenie...

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ICP
PostNapisane: 16 lis 2014, o 22:48 
Offline
Użytkownik

Dołączył(a): 28 cze 2013
Posty: 99
Pomógł: 2

Nie wymyśle , jak to przeliczać



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ICP
PostNapisane: 16 lis 2014, o 23:11 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

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

W tym wzorze num to mikrosekundy!
A jak masz zliczone w Timer/Counter impulsy
to... no co? no co? Oczywiście!
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

A teraz rozwiązanie zagadki dlaczego dla F_CPU = 8000000 działało po wstawieniu do pierwszego wzoru?
to proste bo wynik z dzielenia F_CPU/1000000/8 daje... tak jest oczywiście 1


Autor postu otrzymał pochwałę

_________________
Jestem początkujący i moje porady mogą być błędne



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] i 1 gość


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