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



Teraz jest 9 sty 2026, o 00:50


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 7 maja 2015, o 20:11 
Offline
Nowy

Dołączył(a): 06 maja 2015
Posty: 2
Pomógł: 0

Witam. Początkujący prosi o pomoc / wskazówki przy następującym mini projekcie.
Zwiększanie wartości licznika poprzez wciśnięcie klawisza i wyświetlenie wartości na wyświetlacz LED.
Obsługa klawisza jeszcze bez przerwań (SuperDebounce), zastosowałem łatwiejszą metodę z bloga p Mirka http://mirekk36.blogspot.com/2012/10/obsuga-klawiszy-drgania-stykow-cd2.html%20ostatni%20kod.
Obsługa 7 segmentowego wyświetlacza LED (4 cyfry) działa poprawnie, sięgnąłem tu po „gotowca” z Bluebooka i załączonej płyty, projekt
Cytuj:
03_Multi_LED
, d_led.c i d_led.h bez zmian, w pliku main.c dodałem obsługę klawisza.
Funkcję zapal_led zmieniłem tak aby zwracała wartość. Po wciśnięciu klawisza funkcja zostaje wywołana, licznik się zwiększa (jeśli > od 4, dioda miga) natomiast wartość zmiennej nie wychodzi poza funkcje. Próbowałem kombinować ze wskaźnikami do zapal_led aby dobrać się do jej wartości, zmieniłem funkcje aby pobierała, zwiększała i zwracała zmienną globalną, wklejałem kod funkcji w main.c i nic :( Kombinowałem również ze zmienną typu static w zapal_led, bez rezultatu.
Wszelkie sugestie mile widziane.

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: 8 maja 2015, o 07:15 
Offline
Użytkownik

Dołączył(a): 04 cze 2013
Posty: 517
Pomógł: 26

a co to jest:
uint16_t (*kfun) (void)?

_________________
Przewodnik|Sterownik akwariowy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 maja 2015, o 07:37 
Offline
Użytkownik

Dołączył(a): 26 lut 2014
Posty: 227
Lokalizacja: LDZ
Pomógł: 22

Jest to funkcja callback.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 maja 2015, o 19:56 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Wszystko co dotyczy zamiany liczby na cyfry do wyświetlacza, czyli od:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

umieść w funkcji zapal_led, a najlepiej zrób z tego funkcję, bo po starcie też należy to zrobić. W tej chwili zmieniasz sobie licznik i liczbę, ale cy1, cy2 itd. pozostają takie jak zaraz po starcie, bo są ustawione raz przed pętlą while(1).

Jak licznik będzie zmienną lokalną statyczną to zwracanie wartości ma sens, a jak będzie globalną to nie, bo zmienne globalne są widziane przez wszystkie funkcje i wtedy wystarczy jedna zmienna.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2015, o 21:15 
Offline
Nowy

Dołączył(a): 06 maja 2015
Posty: 2
Pomógł: 0

Dziękuje za pomoc Krauser, przetestowane na szybko i działa. Zrobię funkcję jak sugerujesz.
Teraz mogę iść do przodu z projektem :)



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 0 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