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 06:56


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
    Autor Wiadomość
    PostNapisane: 29 maja 2013, o 12:53 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 25 maja 2012
    Posty: 296
    Lokalizacja: Chebzie Dolne
    Zbananowany użytkownik

    Pomógł: 6

    Witam!
    Korzystając z biblioteki Suna, do wyświetlacza na układzie PCD8544 zabrakło mi funkcji wyświetlającej liczby.
    Do tej pory naskrobałem coś takiego:

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

    ale wyświetla mi tylko dziesiątki liczby czyli zamiast np: 22 wyświetla 2.

    _________________
    Inspekcja TV kanalizacji
    Programowanie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 maja 2013, o 13:05 
    Offline
    Moderator
    Avatar użytkownika

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

    co wg ciebie robi ta operacja?

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


    naprowadzę trochę: masz zmienną buf2 typu char, i teraz wkładasz do niej (UWAGA! TYLKO JEDEN ZNAK) spod wskaźnika *buf

    a potem buf2 przekazujesz jako argument - więc czego się spodziewasz ?

    ------------------------ [ Dodano po: 3 minutach ]

    jeśli funkcja

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


    wysyła TYLKO pojedynczy znak to stwórz sobie funkcję

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


    do której można przekazać wskaźnik do bufora i wtedy twoja funkcja mogłaby wyglądać tak jak te w książce niebieskiej do zwykłego LCD - korzystaj z tych lekcji w książce, postaraj się zrozumieć jak się tworzy tą bibliotekę do LCD. Nie po to żeby ją sobie samemu pisać - ale zrozumiesz jak się działa ze stringami - bo na razie masz z tym ogromny problem widzę

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


    prawda że krótka i fajna ? ..... a dokładnie to samo masz w książce ... i to z wyjaśnieniami co i jak .... tylko trzeba chociaż raz przeczytać ten rozdział o tworzeniu biblioteki do LCD - bo jest ważny i można się z niego sporo nauczyć

    _________________
    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: 29 maja 2013, o 13:37 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 25 maja 2012
    Posty: 296
    Lokalizacja: Chebzie Dolne
    Zbananowany użytkownik

    Pomógł: 6

    Do książki Mirku własnie lookałem. Poda funkcje Sana do wyświetlania stringów:

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


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


    powoduje worninga no bo nie kompatybilne typy wskaźnika. Oczywiście wczesniej przepuszczone jest to przez funkcje itoa().

    _________________
    Inspekcja TV kanalizacji
    Programowanie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 maja 2013, o 13:48 
    Offline
    Moderator
    Avatar użytkownika

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

    No a jak może nie być warninga skoro argument funkcji jest taki

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


    a ty przekazujesz taki

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


    PRZEDE WSZYSTKIM zauważ, że to u Sun'a jest funkcja do wyświetlania stringów z pamięci FLASH a nie z RAM (dlatego ja - jak widzisz w książce do takich funkcji, zgodnie ze standardem AVR GCC dodaję końcówkę _P żeby od razu po nagłówku funkcji było widać do czego ona jest rozumiesz ? stąd masz w książce:

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


    a także

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


    i sam powiedz - od razu widać która do czego prawda ?

    a ty zaglądasz do tej funkcji Suna i widzisz tam przecież

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


    to po tym też powinieneś się zorientować że chodzi o string z pamięci Flash, w związku z tym Sun zresztą bardzo słusznie (no ale wiadomo to Sun) ;) zastosował specyfikator const - bo dla zwykłego programu wszystko co we flash jest const.

    Tyle że on jeszcze zastosował własny typ o nazwie byte

    jak to obejść?

    najprościej to poszukać w tej jego bibliotece funkcji do wyświetlania stringa z RAM, pewnie też jest tylko ty chwyciłeś za tą niewłaściwą ;) A gdyby nie było to co za problem sobie to przerobić ????? wystarczy pozbyć się dwóch rzeczy TYLKO, czyli const i pgm_readbyte() ;)

    z tym że ja bym sobie ją napisał tak bardziej pod AVR GCC

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

    _________________
    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: 29 maja 2013, o 14:42 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 25 maja 2012
    Posty: 296
    Lokalizacja: Chebzie Dolne
    Zbananowany użytkownik

    Pomógł: 6

    Dzięki Mirku twoje wskazówki pomogły:) Narazie wszystko śmiga aż miło.

    _________________
    Inspekcja TV kanalizacji
    Programowanie



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