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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 16 maja 2025, o 23:25


    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: 27396
    Lokalizacja: Szczecin
    Pomógł: 1043

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