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



Teraz jest 24 gru 2024, o 06:48


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 
Autor Wiadomość
PostNapisane: 25 kwi 2013, o 18:19 
Offline
Nowy

Dołączył(a): 24 kwi 2013
Posty: 8
Pomógł: 0

Pytalem o to juz na elektrodzie w swoim temacie ale nikt sie nie zainteresował no. Wiec zapytam tutaj. Z racji tego ze jestem poczatkujacy i nie wszystko jest dla mnie pytanie mam odnosnie kodu, ktory sam napisalem na podstawie ksiazki
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 to ze wg tego kodu nie zapala sie dioda 4, wiem gdzie jest bład bo wskazano mi to juz na elektrodzie chodzi o ten fragment
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Bład jest w ostatniej linijce zmienilem na PORTB &=LED_4 i działa tak jak trzeba, ale nie rozumiem dlaczego. Przeciez np (1<<PB0) ustawia stan wysoki na porcie PB0. To dlaczego działa to do portow pb1, pb2, pb3, a dla portu pb4 musze dodawac juz operator.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2013, o 18:54 
Offline
Użytkownik

Dołączył(a): 11 lut 2013
Posty: 140
Lokalizacja: Kraków
Pomógł: 10

diody zasilasz z portow? bo na to wyglada.. jesli tak to ci powiem co jest zle



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2013, o 19:05 
Offline
Nowy

Dołączył(a): 24 kwi 2013
Posty: 8
Pomógł: 0

no tak z portow



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2013, o 19:17 
Offline
Użytkownik

Dołączył(a): 11 lut 2013
Posty: 140
Lokalizacja: Kraków
Pomógł: 10

no wiec patrz.. ty wystawiasz najpierw napiecie na pin diody pierwszej, potem na pin drugiej za pomoca znaku rownosci i w tym momecie zeruje ci sie bit odpowiedzialny za diode pierwsza wiec swieci tylko droga, ale tylko przez kilka cykli zegara.. do mometu az nieustawisz bitu na trzecia diode, wtedy zeruje ci sie druga dioda.. jak ustawisz czwarta to niema sie ona juz jak wyzerowac wiec swieci zarac po starcie programu.. jak rozwiazac?.. najlepiej wywal te inicjalizacje portb.. zostaw tylko ddrb

jak nierozumiesz to pisz.. i poczytaj sobie o operacjach logicznych


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2013, o 19:23 
Offline
Nowy

Dołączył(a): 24 kwi 2013
Posty: 8
Pomógł: 0

Czyli po prostu chodzi o to ze ten cały cykl jest jednorazowy i sie tak jakby inicjuje. Ja po prostu byłem swiecie przekonany ze jak sobie zinicjuje ta komenda PORTB to ze to po prostu jest rownoznaczne i ze zadne bity mi sie nie beda zerowac tylko zostana stałe tak jak np ustawielem sobie w poprzedniej linijce.



Ostatnio edytowano 25 kwi 2013, o 19:33 przez hans88, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2013, o 19:27 
Offline
Użytkownik

Dołączył(a): 11 lut 2013
Posty: 140
Lokalizacja: Kraków
Pomógł: 10

jak chcesz zeby ci sie nie zerowaly(ustawic jedynki na wyjsciu) to musisz to zrobic tak jak z ddrb



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2013, o 19:34 
Offline
Nowy

Dołączył(a): 24 kwi 2013
Posty: 8
Pomógł: 0

A jeszcze mam pytanie co do tego operatora & to jesli jest on uzyty w formie &=(1<<pb1) to port pb 1 jest mnozony przez siebie czy przez 0 czy jak to jest ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2013, o 19:35 
Offline
Moderator
Avatar użytkownika

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

Wystarczyłoby żebyś napisał to sobie np 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 tak - i byłby ten sam efekt i taki o który ci chodzi jak rozumiem:

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


który wg ciebie jest prostszy ?

Tak w ogóle to poczytaj może jeszcze raz o operacjach bitowych bo widzę, że z tym masz jeszcze na razie poważny problem. Pomyśl sobie - skoro napiszesz tak:

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


to ustawisz JEDYNKĘ na pinie PB1 ale za to ZERA na wszystkich innych pinach - ale ok, pierwsza dioda zgaszona

potem robisz:

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


i co ? OK ustawiasz JEDYNKĘ na PB2 ale znowu wstawiasz ZERA na wszystkie inne piny (bity rejestru) w tym na PB1 który wcześniej ustawiałeś jako JEDEN. I dlatego masz ZONK'a

a gdybyś zrobił tak

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


ale później

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


to wtedy masz już dwie jedynki ustawione i tak dalej - tylko potrzebujesz operacji bitowej OR

_________________
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: 25 kwi 2013, o 19:36 
Offline
Użytkownik

Dołączył(a): 11 lut 2013
Posty: 140
Lokalizacja: Kraków
Pomógł: 10

pb1 jest mnozony przez 1 a wszystkie inne piny tego portu przez 0



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2013, o 19:38 
Offline
Moderator
Avatar użytkownika

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

hans88 napisał(a):
A jeszcze mam pytanie co do tego operatora & to jesli jest on uzyty w formie &=(1<<pb1) to port pb 1 jest mnozony przez siebie czy przez 0 czy jak to jest ?


A możesz zajrzeć do książki? skoro piszesz że ją masz? bo tam na pewno nie ma "w formie &=(1<<PB1)

masz WYRAŹNIE w książce pokazane wręcz żeby się w pamięci utrwaliło

|= oznacza że ustawiasz bit na JEDEN

&= ~ oznacza że zerujesz bit ..... ale nie zapominaj o tyldzie i zobacz w książce opis jak działa taki zapis bo jest tam opisane

^= ten zapis zmienia bit na przeciwny stan

przykłady użycia:

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

_________________
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: 25 kwi 2013, o 19:43 
Offline
Użytkownik

Dołączył(a): 11 lut 2013
Posty: 140
Lokalizacja: Kraków
Pomógł: 10

a jaka ksiazke wogole masz? jesli ta ksiege mirka to tam jest wszystko super opisane



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2013, o 19:48 
Offline
Nowy

Dołączył(a): 24 kwi 2013
Posty: 8
Pomógł: 0

Tak ksiażke mirka z tym ze nie wiem czemu tego nie zrozumialem bo teraz jak to czytam to wydaje mi sie to proste jak budowa cepa. W kazym badz razie dzieki wielkie za wyjasnienia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2013, o 19:49 
Offline
Użytkownik

Dołączył(a): 11 lut 2013
Posty: 140
Lokalizacja: Kraków
Pomógł: 10

spoko...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2013, o 13:20 

Pomógł: 0

hans88 napisał(a):
Tak ksiażke mirka z tym ze nie wiem czemu tego nie zrozumialem bo teraz jak to czytam to wydaje mi sie to proste jak budowa cepa. W kazym badz razie dzieki wielkie za wyjasnienia


Nie przejmuj się, ja to mam zakładkę na tej stronie zrobioną, a już nawet sobie napisałem to na biurku pod klawiaturą niezmywalnym mazakiem by to dotarło do mojej łepetyny ;).



Góra
  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 

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