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



Teraz jest 17 cze 2026, o 12:15


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 3 cze 2014, o 17:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 wrz 2013
Posty: 162
Lokalizacja: Rbk
Pomógł: 5

Witam!

Mam jeszcze jeden problem ;)
Otóż stworzyłem taki programik:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Program powinien działać w następujący sposób: przycisk 1 (KEY1) dodaje do zmiennej PRESS po 1 na klik i zapalają się kolejno diody LED. Natomiast na przycisku 2 (KEY2) ma nastąpić odjęcie po jednej diodzie LED na przycisk. Czyli krótko mówiąc; jeden przycisk dodaje, a drugi odejmuje diody LED.
Problem polega na tym, że można tylko dodawać diody LED, program nie odejmuje diody LED. Jak w zmiennej int wpiszę, press=4; to znowu działa tylko przycisk 2, który odejmuje - na początku świecą się wszystkie diody LED i po kolei mogę je gasić, ale znowu nie mogę dodawać.
Kod robię według kilku poradników i według tego co jest tam napisane powinno wszystko działać. Z tym, że w poradnikach nie ma uwzględnionych przycisków, tylko dodawanie i odejmowanie w kodzie.

Pozdrawiam!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 cze 2014, o 17:57 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

A po jasną anielkę :D po co to?


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: 3 cze 2014, o 18:16 
Offline
Użytkownik
Avatar użytkownika

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

Nefarious19 napisał(a):
A po jasną anielkę :D po co to?

Cytat Mirka z bloga http://mirekk36.blogspot.com/2012/10/ob ... w-cd2.html
Cytuj:
W powyższym kodzie, dziwnym może wydawać się ten _delay_ms(10), ale tak jak w opisie okazuje się, że wprowadziłem po prostu sztuczne opóźnienie po załączeniu podciągania programowego, bo czas narastania stanu wysokiego był tak powolny, że szybciej zadziałał pierwszy IF i po starcie programu, okazywało się, że klawisz jest prawie zawsze wciśnięty. Gdy dodamy byle jakie opóźnienie albo zewnętrzny rezystor np 4,7K to można zapomnieć o tym _delay'u ;)


Spróbuj 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.


Autor postu otrzymał pochwałę


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

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

jacekk232 napisał(a):
Cytat Mirka z bloga http://mirekk36.blogspot.com/2012/10/ob ... w-cd2.html
Cytuj:
W powyższym kodzie, dziwnym może wydawać się ten _delay_ms(10), ale tak jak w opisie okazuje się, że wprowadziłem po prostu sztuczne opóźnienie po załączeniu podciągania programowego, bo czas narastania stanu wysokiego był tak powolny, że szybciej zadziałał pierwszy IF i po starcie programu, okazywało się, że klawisz jest prawie zawsze wciśnięty. Gdy dodamy byle jakie opóźnienie albo zewnętrzny rezystor np 4,7K to można zapomnieć o tym _delay'u


Obsługi klawiszy uczyłem się z BB a tam tego delay'a nie ma



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

Dołączył(a): 27 lis 2013
Posty: 25
Lokalizacja: Legionowo
Pomógł: 3

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


PORTB|=LED ale nawet jak odejmiesz wartośc portu zostaje, czyli zrób PORTB = LED; i PORTB=LED1; PORTB=LED2;



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

Dołączył(a): 23 wrz 2013
Posty: 162
Lokalizacja: Rbk
Pomógł: 5

Kodzik od jacekk232 działa prawidłowo. Próbowałem też od Człowiek_Zlew ale ten szaleje, zapalają się od razy 3 diody.
A jeszcze mam pytanie. Istnieje jakiś sposób, aby nie wykraczać poza zakres? tzn. gdy świecą mi się wszystkie diody LED i kliknę na przycisk to dalej dodaje i później muszę odjąć to dwoma klikami i powrócić. To samo jest, jeśli świeci się jedna dioda LED i kliknę na odejmujący. Chodzi o to, aby np. max to były 3 kliki i dalej nie zliczało.

Dzięki wszystkim za dotychczasową pomoc!
Pozdrawiam!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 cze 2014, o 19:44 
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.


Dla przypadku z odejmowaniem postąp analogicznie.


Autor postu otrzymał pochwałę


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

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Natchhniony przez uwage kolegi jacekk232 popełniłem niniejszy program na podstawie kodu do obsługi klawiszy z bloga.
klawiszem jeden dodaje się ilość zapalonych diod, klawiszem 2 odejmuje. Zabezpieczenie które chciałeś żeby nie zliczał więcej ni mniej a tylko tyle ile diod jest jest dodane. programy napisany si sprawdzony na ATmedze8. Działa super. oto kod:

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




Diody podłączone mam katodami ale wystarczy że przy makrach je ustawisz tak jakbyś miał anodami i zanegujesz tyldą (~)


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 cze 2014, o 17:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 wrz 2013
Posty: 162
Lokalizacja: Rbk
Pomógł: 5

Kombinowałem z tym ograniczeniem naliczania jak słoń pod górę, a to było takie proste :P
Muszę zmienić podejście do języka C, bo widzę, że lubię komplikować sobie życie ;)


Jeszcze raz wszystkim dziękuję i pozdrawiam!



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

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Ds3 napisał(a):
Muszę zmienić podejście do języka C, bo widzę, że lubię komplikować sobie życie


Ja sam jestem bardzo początkujący i jeśli Ci mogę coś doradzić to powiem jedno. Najdzie Cie ochota żeby spróbować jakoś inaczej pomigać diodami? Migaj. Chcesz zrobić woltomierz? Rób. Chcesz coś innego? działaj. Język C nie jest wcale taki straszny jak go malują. Wystarczy logicznie myśleć i kombinować. Trzeba też mistrzów podpatrywać jak np Pan Mirek czy inni wyjadacze na forum :) wszystko przyjdzie z czasem :) ja też mam czasem problemy żeby coś pojąć ale trzeba próbować aż się uda :)



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