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



Teraz jest 16 maja 2026, o 16:30


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 3 maja 2016, o 17:06 
Offline
Nowy

Dołączył(a): 29 kwi 2016
Posty: 14
Pomógł: 0

Witam!

Za pomocą dwóch przycisków chcę sterować ustawieniem godziny na wyświetlaczu LCD. Przycisk "up" poprzez przytrzymanie go lub naciskanie ma ustawiać poszczegolne sekcje godziny (dziesiątki godzin, jedności godzin, dziesiątki minut, jedności minut) a przycisk "ok" ma zmieniać pozycję kursora i zatwierdzać poprzednią sekcję. Niestety pomimo licznych prób nadal nie wiem jak powinien wyglądać kod. Doszedłem do momentu krytycznego i potrzebuję waszej pomocy.

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


Projekt tworzę na ATmega8.
W tej chwili działa to tak, że poprzez naciskanie przycisku zmienia się pozycja od dziesiątek godzin. Przy przytrzymaniu zmieniają się wszystkie sekcje. Czy ktoś z szanownych forumowiczów mógłby pomóc z kodem lub chociaż naprowadzić na prawidłowy tok myślenia?



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

Dołączył(a): 05 kwi 2014
Posty: 339
Pomógł: 10

Ja bym zrobil tak:
Wprowadz sobie zmienna pozycja.
Jaki to lcd? 4 linie po ile wierszy?
Klawiszem bedziesz ustawial pozycje, potem zrob case od pozycji i tam zmieniaj nastawy.
Teraz to ja nic z tego nie rozumiem;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2016, o 17:34 
Offline
Nowy

Dołączył(a): 29 kwi 2016
Posty: 14
Pomógł: 0

Wyświetlacz to HD44780 16x2 w trybie 4-bitowym.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2016, o 19:23 
Offline
Użytkownik

Dołączył(a): 05 kwi 2014
Posty: 339
Pomógł: 10

Ok.
Wchodzisz w tryb programowania.
Nowe zmienne lokalne pozycja i buf_ustaw.
Pozycje masz 0,1 dla godziny i 3,4 dla minut tak?
Zmiena pozycja musi sie zmieniac 0,1,3,4,=>0.1...
Wiec albo select case lub if jak wolisz.

Sprawdzasz pozycja i reagujesz na klawisz up, rozumiem ze ok potwierdza i przechodzi do nastepnej wartosci?
Czyli ok wybierasz pozycja.
Up wtedy ustawiasz
Ok wybierasz nastepna pozycje.
Buf-ustaw bym zrobil bys zapisal do niej wartosc przed zmiana ( po klawiszu ok), i zmienial ja, przed wyjsciem do nastepnej pozycji przypisac do zczytanej poprzednio.
Zawsze bedziesz mial zmienna taka sama jak masz przed zmianami.

Teraz nie rozpisze kodu na komorce ciezko;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 maja 2016, o 18:56 
Offline
Nowy

Dołączył(a): 29 kwi 2016
Posty: 14
Pomógł: 0

Ogarnąłem to na swój sposób, może nieestetycznie to wygląda, ale działa tak jak chciałem. Dla zainteresowanych kod poniżej.

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