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



Teraz jest 30 gru 2024, o 19:09


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 26 wrz 2020, o 15:51 
Offline
Nowy

Dołączył(a): 15 wrz 2020
Posty: 4
Pomógł: 0

Witam,
Po przestudiowania BB zabrałem się za GB i w rozdziale "Nadajnik podczerwieni- własne piloty" i " Transmisja własnych danych w podczerwieni" nie mogę dojść do tego dlaczego piny dla klawiszy są ustawione na wyjście?

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


a następnie w pętli while jest sprawdzany warunek :

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


Chodzi mi o poprawność zapisu, czy nie powinno być "DDRx &= ~(KL1|KL2);" lub pominięte ze względu na zerowanie rejestru DDRx po resecie?
Oczywiście ustawiając piny dla klawiszy na wyjście (jak w przykładzie) i podając stan wysoki, po "ściągnięciu" pinu do masy (czyli w naszym przypadku wciśnięcie przycisku), w rejestrze PINx na pozycji danego pinu będzie "0" lecz czy to jest prawidłowa metoda?
Oczywiście obie metody testowałem i wszystko działa lecz zakładam, że skoro piny klawiszy zostały ustawione na wyjście w przykładach to jest w tym jakiś większy cel którego nie mogę dostrzec.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2020, o 16:40 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 546
Pomógł: 27

Przeczytaj ten rozdział jeszcze raz bo one nie bez powodu są ustawione na wyjścia (chodzi o wybudzanie procka).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2020, o 17:02 
Offline
Nowy

Dołączył(a): 15 wrz 2020
Posty: 4
Pomógł: 0

Wybudzanie procka było w BB i wtedy jak najbardziej uzasadnione było początkowe ustawienie pinów na wyjście, gdyż przyciski połączone były z pinem INTx. W dziale o którym piszę nie ma mowy o takim zastosowaniu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2020, o 18:38 
Offline
Moderator
Avatar użytkownika

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

blendski napisał(a):
i wszystko działa lecz zakładam, że skoro piny klawiszy zostały ustawione na wyjście w przykładach to jest w tym jakiś większy cel którego nie mogę dostrzec.

podaj nr strony i miejsce w książce i który to przykład w kodach z GB - wtedy łatwiej będzie mi ew zajrzeć i sprawdzić bo chyba nie sądzisz, że po tylu latach od napisania książki mogę pamiętać takie szczegóły

_________________
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 wrz 2020, o 09:16 
Offline
Nowy

Dołączył(a): 15 wrz 2020
Posty: 4
Pomógł: 0

mirekk36 napisał(a):
podaj nr strony i miejsce w książce i który to przykład w kodach z GB - wtedy łatwiej będzie mi ew zajrzeć i sprawdzić bo chyba nie sądzisz, że po tylu latach od napisania książki mogę pamiętać takie szczegóły

Chodzi mi dokładnie o stronę 68 w GB (przykład L04_nadajnik_SIRCS), gdzie piny klawiszy są ustawione na wyjście w funkcji main, a następnie w pętli while sprawdzany jest warunek wciśniętego klawisza:

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


tak samo wygląda sytuacja na stronie 74 (przykład L05_transmisja_IR - tylko inne piny zostały zastosowane względem przykłady L04, ale wygląda to tak samo jak opisałem wyżej).
Dodam właśnie, że wgrywałem na moje ATB 1.05a program z książki oraz z zamienionym kierunkiem pinów na wejścia i oba sposoby działały ale rozchodzi mi się o to czy w książce jest jakiś konkretny powód, żeby ustawić te piny klawiszy na wyjście. Cały kod dokładnie analizowałem i nie mogę do tego dojść, gdyż nigdzie nie widzę aby te piny były w jakimś przerwaniu czy w innym miejscu ustawione na wejście.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2020, o 09:40 
Offline
Moderator
Avatar użytkownika

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

Qurczę to ewidentny błąd - taka programistyczna literówka - oczywiście, że nie powinno być tak:


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


tylko jak już to albo tak

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


albo w ogóle mogłoby nie być tej linijki, bo piny są po restarcie i tak wejściami ... Zwykle takie błędziorki zdarzają się gdy kopiuję jakiś fragment kodu z innego ćwiczenia i przerabiam pod inne ćwiczenie - a coś pominę - no i tu chyba mocno pominąłem, albo z rozpędu wszystko na wyjścia ustawiłem, przepraszam.

To że działa to z ustawionymi pinami na wyjścia to bardzo niedobrze - bo przyciskiem robi się zwarcie do GND, rejestr PIND może to wykrywać czyli ten stan niski, no ale jest to niezdrowe dla fizycznych pinów procka i przy dłuższym wciśnięciu przycisku może nawet dojść do uszkodzenia pinu procka. Więc zgodnie z tym co czujesz i ze swoją wątpliwością popraw to w kodzie bo masz rację, że w tym kodzie jest coś nie tak.


Autor postu otrzymał pochwałę

_________________
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 wrz 2020, o 12:07 
Offline
Nowy

Dołączył(a): 15 wrz 2020
Posty: 4
Pomógł: 0

Bardzo dziękuję za odpowiedź, nie będzie mnie już ta zagadka męczyć :)



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