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



Teraz jest 24 sty 2026, o 20:58


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 18 lip 2016, o 18:50 
Offline
Użytkownik

Dołączył(a): 28 lis 2014
Posty: 79
Pomógł: 0

Witam. Jestem przy ćwiczeniu o ADC. Kod taki jak z książki:

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 sprawdzać stan napięcia na 3 kanałach, tylko nie rozumiem tej funkcji:

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


Dokładniej tego:

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


Z poradnika Pana Mirka wyłapałem że jest to maskowanie bitów, (samo maskowanie rozumiem ale w tym przypadku nie bardzo mogę się odnaleźć). Pracuję na Atmedze 32 i zestawie ATB 1.04. Zgodnie z dokumentacją dla kanału ADC5 ostatnie bity ustawiam 101 natomiast dla kanału 7 111 dobrze to rozumiem ??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lip 2016, o 19:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

witam,
to jest właśnie maska.
powinna mieć postać 0b11111000
te trzy ostatnie zera to jakby prześwity w tej masce na podane przez Ciebie 101 lub 111
w podanym przez Ciebie przykładzie 0b11111110 maska odkrywa tylko najmłodszy bit.
czyli możesz ustawić
"0" - pierwszy kanał
"1" - drugi kanał



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lip 2016, o 19:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 cze 2014
Posty: 76
Pomógł: 10

Może autorowi chodziło o sam zapis liczby w postaci binarnej 0b11111110 to jest to samo co 0xFE


Autor postu otrzymał pochwałę

_________________
:)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lip 2016, o 19:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Dodam jeszcze
chodzi o to żeby w rejestrze ADMUX, nie zmieniać nic poza MUX'ami, które są umieszczone właśnie w miejscu zer w masce.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lip 2016, o 19:27 
Offline
Użytkownik

Dołączył(a): 28 lis 2014
Posty: 79
Pomógł: 0

No dobra, więc jak bym chciał ustawić kanał 1 potem 2 i na końcu 3. No bo takie mam założenie projektowe :D

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

Np: 0b11111101 czyli mam zamaskowane wszystkie bity oprócz 2. Czyli kanał 2 mogę ustawić ?? Czy dwa kanały ?? nie wiem jak dokładnie to rozumieć :P



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lip 2016, o 19:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 30 cze 2016
Posty: 247
Lokalizacja: Rybnik
Pomógł: 13

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

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

_________________
Situs != Situs



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lip 2016, o 19:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Poczytaj podobny wątek:
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: 18 lip 2016, o 20:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

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

to z książki, czy domowym sposobem zamieniłeś 0xF8 na Twoje 0b11111110?
O maskowaniu bitów już trochę było, ale pokrótce przypomnę.
Maską jest liczba po" &" i działa w ten sposób, że zeruje te miejsca gdzie jest zero pozostawiając w spokoju jedynki. Dalszy zapis po " |" w miejsca zer wpisuje jedynki lub zera w zależności co chcesz podstawić.
Z reguły przygotowuje się maskę "uniwersalną" do wszystkich Twoich założeń i powinno być 0b11111000 (0xF8) bo będziesz grzebał w ostatnich trzech bitach.

Pozdr.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lip 2016, o 20:57 
Offline
Moderator
Avatar użytkownika

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


_________________
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: 19 lip 2016, o 02:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Zerknij jeszcze na tabelkę ADMUX w d.s. I przyjrzyj się gdzie i jak ustawia się kanały w tym rejestrze. Mam na na myśli MUX, oraz pozostałe które maskujemy. Porównaj z naszym 11111000 i kanal.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lip 2016, o 18:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Dodam,
Rejestr ADMUX : REFS1, REFS0, ADLAR, MUX4, MUX3, MUX2, MUX1, MUX0. nas interesuje ustawienie trzech ostatnich (najmłodszych).
binarnie : 0b-------1--------1--------1-------1-------1-------0------0------0

ponieważ z noty wyczytamy że:
wyzerowanie 000 to pomiar na ADC0 (kanal 0),
ustawiając MUX0- czyli zapisując 001 (kanal 1)w najmłodszych bitach, mierzymy na ADC1.
ustawiając MUX1- czyli zapisując 010 (kanal 2) mierzymy na ADC2.
ustawiając MUX0 oraz MUX1- czyli zapisując 011 (kanal 3) mierzymy na ADC3. itd.

Odpowiadając na pytanie
Ghann napisał(a):
Np: 0b11111101 czyli mam zamaskowane wszystkie bity oprócz 2. Czyli kanał 2 mogę ustawić ?? Czy dwa kanały ?? nie wiem jak dokładnie to rozumieć


Będziesz mógł ustawiać lub zerować MUX1. czyli albo pomiar na ADC2 - przy "010", albo na ADC0 -przy "000"

Ghann napisał(a):
No dobra, więc jak bym chciał ustawić kanał 1 potem 2 i na końcu 3. No bo takie mam założenie projektowe


pamiętając że jest jeszcze kanal 0, na ADC0.
kanal 1 - 001
kanal 2 - 010
kanal 3 - 011

Z MIRKOWYM PORADNIKIEM :) :) , to chyba wszystko już będzie jasne.
pozdrawiam.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lip 2016, o 20:19 
Offline
Użytkownik

Dołączył(a): 28 lis 2014
Posty: 79
Pomógł: 0

Wszystko przeanalizuję na spokojnie :) Dzięki za wszystkie wypowiedzi :) dam znać o efektach :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sie 2016, o 06:21 
Offline
Użytkownik

Dołączył(a): 28 lis 2014
Posty: 79
Pomógł: 0

Witam Panowie po długim czasie :) Ostatnio nie maiłem czasu zająć się tematem, no ale przeanalizowałem wszystkie posty wraz z notą aplikacyjną. No i cóż nagle doznałem olśnienia. Wszystko mi się zgadza i najważniejsze jest to że rozumiem co się dzieje w kodzie. Także dziękuję wszystkim no powiem za dość łopatologiczne wyjaśnienie :) Czasem jest takie potrzebne :P Dzięki wszystkim :)



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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