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



Teraz jest 24 cze 2026, o 12:51


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 24 maja 2014, o 14:36 
Offline
Użytkownik

Dołączył(a): 24 mar 2014
Posty: 46
Pomógł: 0

W ramach ćwiczeń chciałem sobie dołożyć drugą diodę i przycisk do programu Mirka ale koniec końców ta właśnie dioda cały czas jest zasilona ;/ gdzie tkwi błąd?


Faktycznie poprawiam się już ;p

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



Ostatnio edytowano 24 maja 2014, o 15:31 przez ifrook, łącznie edytowano 7 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 maja 2014, o 14:46 
Offline
Moderator
Avatar użytkownika

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

Panie kolego to nie jest twój pierwszy post na forum, już wielokrotnie moderatorzy i ja także przypominaliśmy tobie i pokazywaliśmy jak się umieszcza kod źródłowy na forum w znacznikach [ syntax = c ] ....

jeśli więc nie zaczniesz tego stosować i nie poprawisz tego co wyżej to przykro mi ale będę usuwał takie posty :(

_________________
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: 24 maja 2014, o 15:27 
Offline
Użytkownik

Dołączył(a): 22 lut 2014
Posty: 205
Lokalizacja: Poznań
Pomógł: 22

Za dużo nawiasów miałeś.

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: 24 maja 2014, o 15:31 
Offline
Użytkownik

Dołączył(a): 24 mar 2014
Posty: 46
Pomógł: 0

udalo mi sie :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 maja 2014, o 17:49 
Offline
Użytkownik

Dołączył(a): 24 mar 2014
Posty: 46
Pomógł: 0

chciałbym stan diody drugiej można było zmieniać tylko gdy dioda pierwsza świeci.

wydawało mi się że powinno to być coś takiego

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: 24 maja 2014, o 19:45 
Offline
Użytkownik

Dołączył(a): 22 lut 2014
Posty: 205
Lokalizacja: Poznań
Pomógł: 22

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: 24 maja 2014, o 19:54 
Offline
Użytkownik
Avatar użytkownika

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

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

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

W pierwszym przykładzie zamiast LED_PIN1 preprocesor wstawi 0b10000000. Czyli ten warunek zawsze będzie spełniony i nie będzie to miało żadnego związku z diodą LED1.

A tak poza tym to dlaczego wszędzie używasz typu int zamiast wygodnych typów, które są w gcc np. uint8_t?


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 maja 2014, o 21:15 
Offline
Użytkownik

Dołączył(a): 24 mar 2014
Posty: 46
Pomógł: 0

z przyzwyczajenia wiem że prawidłowo jest uint8_t

Pomogłeś mi dzięki, ale uwaga
if( !(PINC & LED_PIN1) ) dioda 2 da się włączać i wyłączać gdy 1 jest w stanie Low
dlatego wpisałem if( (PINC & LED_PIN1) ) i teraz działa jak chciałem ale dlaczego?

Gdy ten sam program napisze dla diód i przycisków które znajdują się na rejestrach C to dzieją się cuda

czy to ma związek jakiś z odczytem PINC ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 maja 2014, o 09:17 
Offline
Użytkownik
Avatar użytkownika

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

Jeśli chcesz zmieniać stan drugiej diody tylko wtedy gdy pierwsza świeci to powinieneś napisać tak
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
jeśli pierwszą diodę zapalasz stanem niskim, 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.
jesli zapalasz ją stanem wysokim.
W pierwszym przypadku warunek jest spełniony jeśli na pinie LED1 jest stan niski, a w drugim - jeśli jest stan wysoki.

Na ATB diody włączane są stanem niskim i mi działa pierwszy przykład.

ifrook napisał(a):
Gdy ten sam program napisze dla diód i przycisków które znajdują się na rejestrach C to dzieją się cuda

A jakiego procka używasz? Może używasz takiego, który na porcie C ma JTAG. I dlatego część pinów może Ci nie działać.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 maja 2014, o 00:17 
Offline
Użytkownik

Dołączył(a): 24 mar 2014
Posty: 46
Pomógł: 0

wszystko działa, może wczoraj ze zmeczenia coś źle zmieniłem w kodzie nie wiem.
Napisałeś że na ATB diody zmieniane są stanem niskim przecież z kodu jaki wkleiłem a Ty poprawiłeś wynika że musi być sterowane plusem ?

Chciałbym dodać do kodu aby po zgaszeniu diody 1 automatycznie zgasła też dioda druga

wymyśliłem coś takiego ale wyskoczył mi żółty błąd

dodałem
include LED_PIN2OFF

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: 26 maja 2014, o 09:17 
Offline
Użytkownik
Avatar użytkownika

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

ifrook napisał(a):
wszystko działa, może wczoraj ze zmeczenia coś źle zmieniłem w kodzie nie wiem.
Napisałeś że na ATB diody zmieniane są stanem niskim przecież z kodu jaki wkleiłem a Ty poprawiłeś wynika że musi być sterowane plusem ?
A w którym miejscu napisałem, że trzeba coś tam sterować plusem? Kolega chyba nadal jest zmęczony i nieuważnie czyta.


A zamiast tego
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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 maja 2014, o 11:43 
Offline
Użytkownik

Dołączył(a): 24 mar 2014
Posty: 46
Pomógł: 0

Próbowałem tego to nie działa teraz dioda zachowuje się tak że gdy D1 jest włączona moge właczyć D2 ale tylko na chwile bo ta zaraz gaśnie.

Założyłem sobie że ma to być tak że po wciśnięciu D1 nie mogę włączyć D2 i dodatkowo jesli włączyłem D1 podczas świecenia D2 to D2 gaśnie. Wydaje mi się że ta definicja musi być bardziej rozbudowana ale nie mam pomysłu jak;/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 maja 2014, o 22:02 
Offline
Użytkownik

Dołączył(a): 24 mar 2014
Posty: 46
Pomógł: 0

jakieś sugestie?



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ł: Baidu [Spider] 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