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



Teraz jest 28 paź 2024, o 12:25


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 16 kwi 2012, o 20:18 
Offline
Użytkownik

Dołączył(a): 26 lut 2012
Posty: 82
Pomógł: 0

Jako, że zabieram się za LCD a problemów pewnie dla odmiany będę miał pełno pozwoliłem sobie założyć nowy wątek.

Pierwszy problem jest taki, że wyświetlacz nie pokazuje stringa tylko zawala wszystkie komórki zmienną menu_option. Jeszcze przed chwilą wszystko działało, zmieniłem zapis w pliku key.c i się posypało.

Zamysł jest taki, że po kliknięciu przycisku Uc będzie przechodził do kolejnej funkcji (temp, data, string z uart i co tylko). Póki co piszę obsługę klawisza i wyświetlanie jego stanu na LCD.

Plik key.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 key.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 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.









Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2012, o 20:28 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27306
Lokalizacja: Szczecin
Pomógł: 1041

Niestety ja nie rozumiem co to znaczy "zawala wszystkie komórki"

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2012, o 20:31 
Offline
Użytkownik

Dołączył(a): 26 lut 2012
Posty: 82
Pomógł: 0

We wszystkich komórkach wyświetla aktualna wartość zmiennej menu_option, czyli np "0" zaraz po włączeniu atmegi.
Zauważyłem właśnie, że wywołanie samej funkcji:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Nie powoduje wyświetlenie w/w stringa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2012, o 20:39 
Offline
Użytkownik

Dołączył(a): 26 lut 2012
Posty: 82
Pomógł: 0

Ale ze mnie łoś;)
Już znalazłem przyczynę problemu
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

Tak to jest jak się robi IF'a bez nawiasów a później coś do niego dopisuje;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2012, o 20:59 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27306
Lokalizacja: Szczecin
Pomógł: 1041

;) ..... no i proszę - pytanie - i odpowiedź nadeszła jak samonaprowadzająca się rakieta

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 kwi 2012, o 18:25 
Offline
Użytkownik

Dołączył(a): 26 lut 2012
Posty: 82
Pomógł: 0

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

Muszę dać _delay_ms() bo inaczej na wyświetlaczu jest pusto a w przypadku:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

ten _delay_ms() już nie jest potrzebny?



Ostatnio edytowano 18 kwi 2012, o 18:35 przez mlekorlz, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 kwi 2012, o 18:30 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27306
Lokalizacja: Szczecin
Pomógł: 1041

Proponuję rozdzielać pytania bo zamieszałeś że ho ho ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 kwi 2012, o 18:36 
Offline
Użytkownik

Dołączył(a): 26 lut 2012
Posty: 82
Pomógł: 0

Druga sprawa to wyświetlanie stringa wysłanego z PC przez UART do LCD:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Po pierwsze po:
Kod:
         lcd_str_P(tab3);
         _delay_ms(1000);

znów ten nieszczęsny _delay_ms().
Po drugie czy teraz muszę najpierw zapisać zawartość bufora do kolejnej tablicy bo de facto po odczycie z RX_Buf on znika czy jest jakiś inny myk by był on na wyświetlaczu aż do wysłania kolejnego stringa?

Po rozdzielane:)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 kwi 2012, o 19:55 
Offline
Użytkownik

Dołączył(a): 29 mar 2012
Posty: 595
Lokalizacja: Jaworzno
Pomógł: 39

Witam,

Co do _delay_ms to radzę się przyzwyczaić do Timerów. Poprostu szkoda marnować czas procesora. Jeżeli posiadasz książkę kolegi Mirka to masz tam pięknie wytłumaczone jak się timerami posługiwać i nie tylko tymi sprzętowymi. :) Z tego co widzę kolega kombinuje jakąś obsługę "menu". Ja właśnie jestem na etapie tworzenia menu do swojego projektu i do obsługi klawiszy używam wspaniałego wynalazku Mirka jakim jest procedura SuperDebounce :D . W pętli głównej sprawdzam tylko wartość timera programowego, stan klawiszy i ewentualnie wykonuję jakąś akcję, to wszystko. W sprawie uart'a to raczej powinieneś dane zbierać do jakiegoś bufora bo tak wprost na wyświelacz to ja tego nie widzę :o

_________________
Pozdrawiam
PP



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 kwi 2012, o 22:51 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27306
Lokalizacja: Szczecin
Pomógł: 1041

Piotrek_P ---> bardzo trafna podpowiedź

te przykłady z delay_ms() to z początkowych przykładów mają demonstrować tylko pewne proste mechanizmy zanim nie przejdę do tematów bardziej zaawansowanych - które są celem książki

a widzę, że niektóre osoby zatrzymują się na tych początkach - i jak do ognia troszkę podchodzą do dalszej części książki i programowania w oparciu o timery programowe itp :( szkoda


mlekorlz --> pewnie że w tym drugim przypadki nie jest potrzeby delay - ale to już trzeba dokładnie przeanalizować kod - ja niestety wymiękam - nie uda mi się w tym temacie nic pomóc. Na drugi raz zakładaj jeden wątek do jednego pytania a nie 10 pytań w jednym wątku - bo potem będzie pisanie o wszystkim i o niczym albo próba zgadywania na które pytanie kto odpowiada itp

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



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