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



Teraz jest 18 mar 2026, o 21:54


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
 Tytuł: Makrodefinicje
PostNapisane: 27 lis 2013, o 14:14 
Offline
Nowy

Dołączył(a): 19 cze 2012
Posty: 9
Pomógł: 0

Witam
Przerabiam rozdział Wyświetlacz LCD z Niebieskiej Książki

Napotkałem tam makra ułatwiające dostęp do portów
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Nie jestem pewien czy dobrze to rozumiem.
W pierwszej linii makro DDR(x) przypisuje się ciąg znaków SDDR(x).
Czy to SDDR(x) należy interpretować jako makro zdefiniowane linie niżej które w miejsce x podstawi wartość LCD_D7PORT czyli B.

Znawców tematu proszę o wyjaśnienie gdyż jest to dla mnie zagadką.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lis 2013, o 14:34 
Offline
Użytkownik
Avatar użytkownika

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

W tym temacie jest wytłumaczone jak to działa post974.html#p974



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lis 2013, o 18:47 
Offline
Moderator
Avatar użytkownika

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

jacekk232 napisał(a):
Najbardziej mnie wciąga chodzenie po bagnach


Dżizes - po jakich ? :shock: :roll: :lol:

A na poważnie fajnie że znalazłeś tego linka - bo właśnie go szukałem ;) dzięki

_________________
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: 27 lis 2013, o 21:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 sie 2013
Posty: 230
Lokalizacja: Zabrze
Pomógł: 17

mirekk36 napisał(a):
jacekk232 napisał(a):
Najbardziej mnie wciąga chodzenie po bagnach


Dżizes - po jakich ? :shock: :roll: :lol:


Chodzenie po jakichkolwiek bagnach jest wciągające :twisted:


mirekk36 napisał(a):
A na poważnie fajnie że znalazłeś tego linka - bo właśnie go szukałem ;) dzięki


Może warto by ten linkowany temat jakoś wyeksponować na przyszłość, bo zrozumienie tych define'ów jest rzeczywiście dla wielu (nie tylko początkujących) problematyczne? A tak: wejdzie się na forum i od razu widać by było.

_________________
40-32:2=4!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lis 2013, o 21:53 
Offline
Użytkownik
Avatar użytkownika

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

Bagna już mają to do siebie, że jak się zacznie po nich chodzić to każdego wciągną :-)

Ja zawsze czytam ten opis wtedy kiedy muszę sobie przypomnieć jak to działa. Bo jak rzadko używam tych makr to mi potem pamięć szwankuje. Ale wtedy wpadam na Mirka blog do działu "Język C" a stamtąd prosto do tego tematu na forum.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lis 2013, o 21:57 
Offline
Moderator
Avatar użytkownika

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

PJS napisał(a):
Może warto by ten linkowany temat jakoś wyeksponować na przyszłość, bo zrozumienie tych define'ów jest rzeczywiście dla wielu (nie tylko początkujących) problematyczne? A tak: wejdzie się na forum i od razu widać by było.


Dlatego warto odwiedzać mojego bloga, na którego zawsze serdecznie każdego zapraszam. Tam jest link w odpowiednim "KĄCIKU" ;)

http://mirekk36.blogspot.com/2011/12/je ... ep-do.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: 28 lis 2013, o 08:51 
Offline
Nowy

Dołączył(a): 19 cze 2012
Posty: 9
Pomógł: 0

Witam
Dzięki za wyjaśnienia.

Jest jeszcze jedna sprawa która budzi moje wątpliwości.
W pierwszej linii makru DDR(x) przypisuje się inne makro SDDR(x) które jest zdefiniowane linie niżej.
Analizując kod wydaje mi się że w tym punkcie makro to jeszcze nie istnieje, lecz preprocesor podstawia do niego wartość innej stałej dosłownej np. LCD_D7PORT.
Jak to jest możliwe.
Czy może mi to ktoś wyjaśnić.

Za pomoc z góry dziękuje.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2013, o 09:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 sie 2013
Posty: 230
Lokalizacja: Zabrze
Pomógł: 17

Nie jestem pewien czy dobrze cię rozumiem, ale przy #define są tylko definicje "podstawień". A samo podstawienie/zastępowanie następuje dopiero przy, nazwijmy to analizie programu przez preprocesor, czyli tam, gdzie następuje korzystanie z tych definicji. Chyba, że czegoś nie wiem/źle zrozumiałem to wtedy proszę o poprawienie mnie.

_________________
40-32:2=4!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2013, o 09:39 
Offline
Moderator
Avatar użytkownika

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

angor11 napisał(a):
Jest jeszcze jedna sprawa która budzi moje wątpliwości.
W pierwszej linii makru DDR(x) przypisuje się inne makro SDDR(x) które jest zdefiniowane linie niżej.
Analizując kod wydaje mi się że w tym punkcie makro to jeszcze nie istnieje, lecz preprocesor podstawia do niego wartość innej stałej dosłownej np. LCD_D7PORT.
Jak to jest możliwe.
Czy może mi to ktoś wyjaśnić.


Popełniasz błąd w rozważaniach bo zakładasz że coś będzie się podstawiało na etapie definicji makr .... jak wynika z tego co piszesz, tymczasem wyjaśniałem ale jeszcze raz doprecyzuję, no sam zobacz masz w kodzie dwa makra na górze a na dole kod źródłowy jak niżej:

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


no to myśl teraz o rozwijaniu makr ale w linii nr 4 powyższego kodu. Chyba teraz nie będziesz miał problemu z tym że coś jest niżej czy wyżej - z punktu widzenia linii nr 4 ;)

_________________
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 lis 2013, o 10:21 
Offline
Nowy

Dołączył(a): 19 cze 2012
Posty: 9
Pomógł: 0

Dzięki za wyjaśnienie



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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO