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



Teraz jest 19 sty 2025, o 01:09


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
 Tytuł: ADC
PostNapisane: 19 lip 2012, o 09:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Witam.
Próbuje zrobić sterowanie silnikiem DC za pomocą PWM. PWM jest wysterowany za pomocą potencjometru, a wartośc jest pobierana z
ADC.
Potrzebuje rozdzielczość 8 bitową przetwornika - czyli włączam w rejestrze ADMUX |= (1<<ADLAR); ale nie wiem co dalej.
Zakres jest teraz do 32655 jak pokręcam dalej to przeskakuje na wartości ujemne.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Co to za rejestr ADCW?
Gdzie mogę ustawić na piechotę rejestry ADCH i ADCL??

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ADC
PostNapisane: 19 lip 2012, o 10:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

arko_go napisał(a):
return ADCW;


Zwracasz dwa bajty z pomiary (ADCH i ADCL scalone w jeden bajt) czyli 16bitów, ale sześciu pierwszych jako tako nie ma czyli de fakto 10 bitów.

arko_go napisał(a):
lcd_int(pomiar (5));


Wyrzucasz na LCD liczbę int, czyli z zakresu −32768 do +32767. Dlatego zamiast np. liczby 40000 na wyświetlaczu otrzymasz wartość ujemną (licznik się przekręci). Jeśli chcesz rozdzielczość 8 bitową to musisz zrobić coś takiego

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


Działa to tak, że zerujesz dwa bity najmłodsze (najmniej znaczące) i zamiast 10 bitów masz już 8, ale należy całość jeszcze przesunąć o dwa miejsca w prawo, aby wynik zmieścił się w jednym bajcie

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ADC
PostNapisane: 19 lip 2012, o 10:23 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Możesz tak przerobić funkcję

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

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ADC
PostNapisane: 19 lip 2012, o 10:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

A ja rozwiązałem to inaczej. Ustawiłem bit ADLAR i zwróciłem i przesunąłem wartość ADCW>>8.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


i działa super.
Wielkie dzięki za wytłumaczenie:)

Pozdrawiam
Arek

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ADC
PostNapisane: 19 lip 2012, o 13:04 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27346
Lokalizacja: Szczecin
Pomógł: 1041

Uwaga!!!!!! pisałem na forum już to niejednokrotnie w tej linii jest błąd:

Cytuj:
ADMUX |= (ADMUX & 0xF8)| kanal;


ma być tak:

Cytuj:
ADMUX = (ADMUX & 0xF8)| kanal;


(to nic że działa gdy jest tak jak w pierwszym przypadku z błędem - bo działa tylko dla jednego kanału, a dla dwóch albo przy zmianie będzie ZONK)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



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 5 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