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



Teraz jest 19 mar 2026, o 00:47


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 17 lis 2014, o 09:38 
Offline
Użytkownik

Dołączył(a): 16 lis 2014
Posty: 79
Pomógł: 0

Witam, jestem poczatkujacy i zabralem sie za bluebooka, lecz napotkalem sie na program ze switch'ami. Problem wyglada nastepujaco. Mam 4 switche i chce aby kazdy wykonywal inna sekwencje na diodach. Jestem juz blisko ale gdy wejde w petle jednym przyciskiem to juz kolejnym nie moge wyjsc i zmienic sekwencji mrugania diodami.
Prosze o pomoc.

P.S w zalaczniku wysylam 3 plikowy program i z gory dzieki za odpowiedz :)


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lis 2014, o 11:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Kolega przesyłam Ci trochę zmodyfikowany Twój kod (nietestowany więc zachodzi możliwość, że nie będzie działał), ogólnie robisz parę błędów, ale doczytasz Bluebooka to wszystko ogarniesz ;)

Tu kody:

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


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


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


z Niebieskim pozdRowieniem,
Doman89


------------------------ [ Dodano po: 11 minutach ]

Generalnie to dziwi mnie, że nie masz nigdzie zainkludowanego pliku leds a Ci funkcja działa, dlatego u mnie zmieniłem nazwę pliku define.h na leds.h.

Funkcja leds_init bardziej by mi się kojarzyła z inicjalizacją, niż z funkcją zmieniania trybu, ale zostawiłem tak jak miałeś.

Zmienne int keylock = 1, czy uint16_t key1_lock, key2_lock, na 99% wystarczyłyby uint8_t. Musisz doczytać o zmiennych, bo przy mikrokontrolerach musisz nauczyć się oszczędzać pamięć bo jest jej strasznie mało w porównaniu do PC - to istna przepaść ;)

A teraz czemu nie możesz wyjść z pętli? Tak na oko to mi się rzuca, że przypisujesz zmiennej key_lock wartość 1 (w pliku leds.c). Teraz wpadasz w pętlę nieskończoną while(1) i tu masz warunek jej przerwania: if (!key_lock && KEY1_DOWN), czyli jeżeli key_lock będzie posiadał wartość 0. Ale nie ma możliwości aby taką uzyskał ;) Bo nigdzie nie ma takiej możliwości w tym while'u.

Tak więc polecam doczytać ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lis 2014, o 12:18 
Offline
Użytkownik

Dołączył(a): 16 lis 2014
Posty: 79
Pomógł: 0

Dzieki za szybka odpowiedz :)
Zmieniajac nazwe define.h na leds.h dalej nie jest zainkludowany plik leds.c.
Wchodziłem w pętlę nieskończoną, aby zapętlić sekwencje(nie mam pomyslu jak inaczej to zrobic)
A w bluebooku nie jest za wiele na temat przyciskow (chyba ze gdzies DALEJ :P)


P.S. Twoj program narazie mi nie działa ale zaraz bede go analizował i mam nadzieje, że w końcu sie z tym uporam :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lis 2014, o 12:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Cytuj:
Zmieniajac nazwe define.h na leds.h dalej nie jest zainkludowany plik leds.c.


Kolega poczytaj bluebooka to wszystko się rozjaśni w tym temacie ;)

z Niebieskim pozdRowieniem,
Doman89



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lis 2014, o 12:36 
Offline
Użytkownik

Dołączył(a): 16 lis 2014
Posty: 79
Pomógł: 0

Problem rozwiazany, zaraz wrzuce plik main.c, reszta pozostaje bez zmian (tzn te, ktore wczesniej wrzuciłem)

------------------------ [ Dodano po: 2 minutach ]

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


------------------------ [ Dodano po: 2 minutach ]

Dzieki wielkie za pomoc , pozdrawiam !



Ostatnio edytowano 17 lis 2014, o 16:25 przez kubavit, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lis 2014, o 14:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Kolega popraw post - wrzuć kod w znaczniki SYNTAX inaczej jeden z "zielonych" Cię dorwie ;) ewentualnie "różowy" wyjątek potwierdzający regułę :lol:

z Niebieskim pozdRowieniem,
Doman89



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

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