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



Teraz jest 7 kwi 2026, o 08:56


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 18 mar 2015, o 13:39 
Offline
Użytkownik

Dołączył(a): 10 paź 2014
Posty: 57
Pomógł: 0

Witam. Chciałbym zrobić obsługę przycisku za pomocą flag. Nie posiadam BB co utrudnia sprawę, czytałem blog Pana Mirka ale ta część III jest trochę przerażająca jak na początek więc chciałem obsługę tego przycisku zrobić za pomocą flag. Klikam raz dioda zapalona klikam drugi raz dioda gaśnie. Nie chodzi mi tu o polecenie np:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Na forum znalazłem podobny wątek,

topic10919.html

Zainteresował mnie post cytuję:

"No to może tak:
zmienna flaga = 0
if przycisk wciśnięty i flaga = 1, flaga = 0
else if przycisk wciśnięty i flaga = 0, flaga = 1
if flaga = 1, migaj dioda
else zgaś diodę"

Jak się do tego zabrać??

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


Próbowałem tak, ale to w ogóle nie działa mi i dokładnie wiem że nie tak powinno to wyglądać. Z góry przepraszam za formę wiem że to jest źle napisane. Jak to powinno wyglądać?? Proszę o pomoc. . .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 mar 2015, o 14:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 maja 2014
Posty: 317
Pomógł: 19

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


Próbowałem tak, ale to w ogóle nie działa mi i dokładnie wiem że nie tak powinno to wyglądać. Z góry przepraszam za formę wiem że to jest źle napisane. Jak to powinno wyglądać?? Proszę o pomoc. . .
KEY5, LED1 powinny być wcześniej opatrzone dyrektywami definiującymi, natomiast zmienna flaga powinna być wcześniej zdefiniowana i najlepiej zainicjowana domyślną wartością. Do tego piny które są zdefiniowane mają odpowiadać tym gdzie podpięte są faktycznie do pinów mikrokontrolera (MCU). Jeszcze na dodatek to o co pytasz to w zasadzie powinno wykonywać się w oparciu o TIMER sprzętowy MCU. Kurcze.. Jak by Cię tu naprowadzić a nie ładować kodu z BB (co jest zabronione na tym forum).... Może tak:
1. Najpierw zobacz sobie co to są dyrektywy #define w języku C i co dzięki nim można robić (to będziesz wiedział jak "podpiąć" jakąś stałą do tzw. stałej wbudowanej w GNU C, np. PINC to jest stała wbudowana, ale LED1 już nie i LED1 Ty musisz zdefiniować (podpiąć) pod odpowiednią stałą wbudowaną)
2. Potem zobacz jak ustawia się piny MCU w stan wysoki, lub niski - wtedy będziesz wiedział gdzie podpiąć anodę a gdzie katodę od diody (może i tak i tak, tzn. albo katodą do MCU, albo anodą do MCU, ale MCU musi to wiedzieć i w oparciu o to odpowiednio ustawiać stan wysoki lub niski na nóżkę gdzie podpięta jest dioda).
3. Potem zobacz gdzieś co to jest TIMER w MCU, ale to nie wszystko, bo żeby używać TIMER'a musisz wiedzieć co to są przerwania, częstotliwość MCU, preskaler, etc. - wszystko co dotyczy ustawiania TIMER'a - o czym pisze w dokumentacji, lub w BB.
4. Potem zobacz sobie co to są operacje Boole'owskie (logiczne) - wtedy będziesz wiedział jak sprawdzać takie warunki jak: PINC & KEY5, lub jak ustawiać stan np. poprzez: PORTB &= ~LED1;

Hmm... Bez BB to jest możliwe do zrobienia, ale to jest sporo szukania po necie, po dokumentacji... Nie wiem, może jakiś BB jest gdzieś w którejś bibliotece u Ciebie w mieście.. Rusz głową to na pewno jakoś dostaniesz jakiegoś BB. ;) -np. niedawno jakiś Kolega na forum sprzedawał w bardzo przystępnej i odpowiednio niskiej cenie BB. Powodzenia!

Pozdrawiam! j23 Jarek

_________________
"O sygnałach bez całek" Czesław Frąc



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 mar 2015, o 15:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Też polecam Ci zakup BB. Można się z niej bardzo dużo nauczyć, jeśli na poważnie chcesz się zająć programowaniem AVR'ków w C.
Napisałem Ci program taki trochę naokoło, bez timerów i bez kodu z książki.
Mam nadzieję, że nie dostanę po uszach, ale w sumie te wszystkie informacje można znaleźć na blogu p. Mirka i napisać nie mająć BB.
Opis masz w kodzie w komentarzach. Pamiętaj, że to nie jest najlepsze rozwiązanie, no ale od czegoś trzeba zacząć.

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: 18 mar 2015, o 17:32 
Offline
Użytkownik

Dołączył(a): 10 paź 2014
Posty: 57
Pomógł: 0

Dziękuję bardzo :) właśnie o coś takiego mi chodziło :) Jeśli chodzi o BB to faktycznie zaopatrzę się w niego bo widzę, że bez niego to ani rusz :P Dzięki jeszcze raz :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 mar 2015, o 01:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Zgadza się! Dla nas początkujących to bez BB ani rusz! Cieszę się, że Ci się to przyda, chociaż nie jest to dobry przykład. Przycisk nie działa do końca prawidłowo, bo gdy go przytrzymamy dłużej dioda zacznie migać. Również nie ma tutaj prawidłowego zabezpieczenia drgania styków. A najważniejsze jest to, że jest to program blokujący, użyte są delaye, które "zatrzymują" niepotrzebnie procesor, który w tym czasie może "robić" jeszcze inne ciekawe rzeczy. Kolega j23 napisał jak to powinno wyglądać, a mianowicie z użyciem przerwań i timera programowego. Nie jest to nic strasznego, łatwo się tego nauczyć, kiedy się ma pożądną książkę, w której autor nie tylko tłumaczy jak tego użyć ale jeszcze pokazuje na konkretnych przykładach jak to działa i dlaczego. W dodatku naprawdę w łatwy i przystępny sposób. Do tego dochodzą jeszcze darmowe poradniki i blog p. Mirka, które uzupełniają się nawzajem. A na końcu jeszcze zajefajne forum techniczne. Mając to wszystko potrzeba jeszcze trochę wolnego czasu i samozaparcia, a w krótkim czasie można tworzyć naprawdę odjechane projekty.
Pozdrawiam serdecznie i życzę miłej zabawy w programowaniu AVRków. :D



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: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 11 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