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



Teraz jest 3 lis 2024, o 13:45


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 8 lip 2013, o 15:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 60
Pomógł: 0

Witam.
Po zakończonym projekcie związanym z PWM wypadało się zabrać za temat ADC... tak też zrobiłem. Jednak przed rozpoczęciem cyklu poradników p. Mirosława chciałbym się dowiedzieć dlaczego powinien właśnie tak wyglądać zapis ustawienia wybranego kanału ADC w rejestrze ADMUX?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Zapis pochodzi z tematu ADC z niebieskiej książki, dokładniej w funkcji pomiar(kanal). Zastanawia mnie jedno, choć operacje i co "ogólnie" tu się dzieje rozumiem, to jednak nie wiem czemu ma służyć zapis ADMUX & 0xF8 ?
0xF8 w zapisie systemu binarnego wygląda następująco 0b11111000, natomiast rejestr ADMUX jest zależny od wcześniejszych operacji na tym rejestrze. Operacja ta ma służyć sprawdzeniu czy aby na pewno nie ma wysokiego stanu na 5 starszych bitach rejestru ADMUX, który jest 10 bitowy? Prosiłbym o wytłumaczenie tego w sposób zrozumiały dla początkującego programisty. :D

PS. Przepraszam za banalne pytania, które mogą doprowadzić do gorączki, jednak wielu "samouków" napotkało zapewne kiedyś takie banalne, z dzisiejszej perspektywy problemy.

Po namyśle jeszcze jedno małe pytanko:
Dlaczego w programie mamy zapis włączenia modułu i ustawienia preskalera dot. rejestru ADCSR, skoro (chyba błędnie) wyszukałem w nocie katalogowej tylko rejestr ADCSRA? - dane dla ATmega32.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lip 2013, o 16:28 
Offline
Użytkownik

Dołączył(a): 24 kwi 2013
Posty: 454
Pomógł: 30

Ten AND ma wyzerować pierwsze trzy bity ADMUX, aby potem OR mógł prawidłowo zmodyfikować ich wartość.
Poza tym zajrzyj tu, bo jest jeszcze inny aspekt, który pominąłeś: http://atnel.pl/uaktualnienia-programow-do-dvd.html


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lip 2013, o 16:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 60
Pomógł: 0

Dzięki wielkie. :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 kwi 2014, o 23:50 
Offline
Nowy

Dołączył(a): 08 mar 2014
Posty: 24
Pomógł: 0

To może jeszcze tyko spytam, czemu ma wyzerowac 3 pierwsze bity nie 4? zakładam, że ma wyzerować MUX0, MUX1, MUX2. Z góry dziękuję za odpowiedź :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 kwi 2014, o 05:31 
Offline
Moderator
Avatar użytkownika

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

Cytuj:
To może jeszcze tyko spytam, czemu ma wyzerowac 3 pierwsze bity nie 4?


A na ilu bitach masz zapisane numery kanałów od 0 do 7 ? ... na trzech ? czy na czterech ? .... teraz jaśniej ? ;)

------------------------ [ Dodano po: 1 minucie ]

w razie czego polecam obejrzeć to:

http://mirekk36.blogspot.com/2014/03/li ... stawy.html

_________________
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  
PostNapisane: 29 kwi 2014, o 12:38 
Offline
Użytkownik
Avatar użytkownika

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

Tak właściwie to wybór kanału powinien wyglądać tak
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


robert95 napisał(a):
Dlaczego w programie mamy zapis włączenia modułu i ustawienia preskalera dot. rejestru ADCSR, skoro (chyba błędnie) wyszukałem w nocie katalogowej tylko rejestr ADCSRA? - dane dla ATmega32.

Masz rację. Atmega32 nie posiada rejestr ADCSR tylko ADCSRA. Może to tylko literówka ale zmusza czytelnika do myślenia i do zaprzyjaźnienia się z notą pdf procka.
Poza tym rozdział o pomiarze różnicowym był pisany pod Attiny26 który posiada właśnie rejestr ADCSR. I może też stąd ta pozostałość.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 kwi 2014, o 17:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 sty 2014
Posty: 178
Pomógł: 24

polecam obejrzenie : :)
http://www.youtube.com/watch?v=zittec1MM5w



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

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