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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 17 maja 2025, o 00:00


    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 ] [ Zaznacz wszystko ]
    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 ] [ Zaznacz wszystko ]
    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: 27396
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 27396
    Lokalizacja: Szczecin
    Pomógł: 1043

    ;) ..... 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 ] [ Zaznacz wszystko ]
    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: 27396
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 27396
    Lokalizacja: Szczecin
    Pomógł: 1043

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