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



Teraz jest 27 cze 2026, o 00:05


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 19 cze 2014, o 18:16 
Offline
Użytkownik

Dołączył(a): 19 sty 2013
Posty: 322
Pomógł: 22

Witam

Mam pewien problem w artykule http://mirekk36.blogspot.com/2012/01/avr-porty-wewy-dir-podstawy.html. Przeczytałem, że można definiować piny dokładnie trzema metodami. Program ma za zadanie jedynie zmienić stan diody na przeciwny jeżeli klawisz zostanie załączony pominąłem tutaj problem związany z drganiem styków, ze względu na testowy charakter tego programu.

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


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


III możliwość nie działa wogólę:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


I moje pytanie brzmi. Dlaczego nie mogę ustawić tego portu w sposób binarny ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2014, o 18:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

dla LED_PIN w II i III sposobie jest błąd
po rozwinięciu przez preproesor wyjdzie takie coś
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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

wstawia dokładnie to co napiszesz w define po spacji oddzielającej
"nazwę "od "wartości"
w miejsce wystąpienia "nazwy"


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2014, o 18:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 cze 2014
Posty: 34
Zbananowany użytkownik

Pomógł: 2

Zamiast:

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


powinno być:

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


zamiast "b" miałeś "d" - zwykła literówka.


MXST4


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2014, o 18:48 
Offline
Użytkownik

Dołączył(a): 19 sty 2013
Posty: 322
Pomógł: 22

Witam

Wielkie dzięki za rozwiązanie problemu zmyliło mnie to że w artykule było:
DDRB = 0b11110000; i myślałem, że to 'b' jest równoznaczne z portem B. Problem rozwiązany dziękuje za pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2014, o 21:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 sty 2013
Posty: 426
Pomógł: 36

Niestety, ale dalej jest źle.
W drugim sposobie powinno być:

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


a w trzecim powinno być:

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: 19 cze 2014, o 21:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 cze 2014
Posty: 34
Zbananowany użytkownik

Pomógł: 2

Kolega zwrócił wcześniej uwagę o tym nie błędzie, bo kod i tak wykona się poprawnie, ale o błędzie takim stylistycznym, dla programisty.


Kod autora:

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



Zauważ, że rejestr DDR jest r/w (read/write), w pierwszej operacji: rejestr DDRD jest zapisany tą wartością binarną, następnie jest przypisanie prawej strony do lewej, po prawej stronie po wykonaniu zapisu zostaje DDRD, który zostaje odczytany (a przed chwilką zapisaliśmy go jakąś tam wartością) i tak naprawdę dochodzi do sytuacji, że lewa = prawa i ale dane i tak się zapiszą na tym rejestrze.


MXST4



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2014, o 21:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 sty 2013
Posty: 426
Pomógł: 36

Ok, ale jak już już robić/uczyć się, to zgodnie ze sztuką programowania i nie popadać w złe nawyki :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2014, o 21:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 cze 2014
Posty: 34
Zbananowany użytkownik

Pomógł: 2

Oczywiście w 100% się zgadzam :)

Życzę miłej nocy.


MXST4



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2014, o 21:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

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

trafi wartość TRUE czyli 0x01 bo operacja
w nawiasiach przy prawidłowym wykonaniu
zwróci True i w efekcie tego do rejestru
DDRD trafi 0x01.

Zaznaczam to jest pytanie :)
mógłby ktoś rozwiać moje wątpliwości



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2014, o 22:25 
Offline
Użytkownik
Avatar użytkownika

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

Zaba napisał(a):
mógłby ktoś rozwiać moje wątpliwości

Oczywiście będzie tak jak pisze kolega MXST4. W jednym i w drugim zapisie do rejestru np. DDRD trafi to samo. Wystarczy podejrzeć plik *.lss by się przekonać i rozwiać wątpliwości.

Pierwszy zapis
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 asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


i drugi
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 asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


I nie trzeba być ekspertem w asemblerze (bo ja się wcale na asm nie znam) by zrozumieć te kilka linijek w pliku *.lss.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników 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