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? 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 5 cze 2025, o 21:43


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
    Autor Wiadomość
    PostNapisane: 21 sie 2015, o 20:47 
    Offline
    Nowy

    Dołączył(a): 10 sie 2015
    Posty: 16
    Pomógł: 0

    Witam.
    Uczę się z książki Mikrokontrolery AVR Język C Podstawy programowania - M. Kardaś. Chciałem wyświetlić dane z RTC na LCD. Do lcd używam biblioteki Radzia.

    Gdy w kodzie głównym nie ma żadnych komend z TWI wyświetlacz działa poprawnie. Po załączeniu komendy "TWI_read_buf(*******);" wyświetlacz nie pokazuje nic.
    Proszę o pomoc.
    (Wyświetlacz podłączony z użyciem BusyFlag, na 4rech pinach, wszystko na PORTB). Rezystory do TWI też są ładnie. Błędów w połączeniu na 100% nie ma.

    Po sprawdzeniu "programowym debugerem" (while (1) co linijkę) zauważyłem, że program wiesza się po wpisaniu adresu urządzenia ( TWI_write(adr); ), tylko nie wiem co mogę w związku z tym zrobić. Przerzucam się dopiero z Arduino na C, i że tak powiem, jestem totalna zieleń :p

    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.


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


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


    RTC.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: 21 sie 2015, o 21:08 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 sty 2013
    Posty: 1760
    Pomógł: 196

    Witam
    To chyba nie to, ale masz też błąd:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    brakuje "wykrzyknika"
    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: 21 sie 2015, o 21:14 
    Offline
    Nowy

    Dołączył(a): 10 sie 2015
    Posty: 16
    Pomógł: 0

    Wiem, ale po przeczytaniu tego, wywaliłem wykrzyknik. Z nim, czy bez, wyświetlacz nie działa :(
    http://www.atnel.pl/i2c_twi_lib_stop_error.html



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 sie 2015, o 21:54 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 gru 2014
    Posty: 1540
    Pomógł: 269

    Poprawna wersja to oczywicie ta bez wykrzyknika.

    ------------------------ [ Dodano po: 17 minutach ]

    Brakuje Ci funkcji ustawiającej prędkość na I2C.
    Poczytaj BB, a znajdziesz tam funkcję:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Dodaj jej wywołanie w 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.

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

    robimy to w ustawieniach projektu. Zobacz tutaj.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 sie 2015, o 23:25 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 sty 2013
    Posty: 1760
    Pomógł: 196

    anshar napisał(a):
    Poprawna wersja to oczywicie ta bez wykrzyknika.

    - sorry - patrzyłem tylko do BB nie czytając errat.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 sie 2015, o 18:15 
    Offline
    Nowy

    Dołączył(a): 10 sie 2015
    Posty: 16
    Pomógł: 0

    Niestety nic nie poszło dalej :( Wrzuciłem F_CPU do toolchaina. Swoją drogą dzięki wielkie za rozjaśnienie tego :) rozebrałem funkcję TWI_read_buf na czynniki pierwsze... niestety wyświetlacz nie pokazuje nic. Linia kodu po której LCD przestaje wyświetlać napis "TEST" zaznaczona w kodzie...
    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.


    Kod funkcji "TWI_read
    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: 23 sie 2015, o 19:02 
    Offline
    Moderator
    Avatar użytkownika

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

    To zacznij od schematu jak to podłączyłeś - bo tak to można pisać i pisać i nie znajdziemy gdzie babola robisz .... a na płycie DVD w książce masz na 100% działający kod do skompilowania

    _________________
    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: 23 sie 2015, o 19:29 
    Offline
    Nowy

    Dołączył(a): 10 sie 2015
    Posty: 16
    Pomógł: 0

    Mirku niestety nie mam napędu w laptopie :/ Może mogę gdzieś kupić samo DVD w wersji cyfrowej, wtedy niejako rozwiązałbym problem..?
    Schemat:
    Obrazek

    RTC jest podpięty w module. Oczywiście rezystory 4.7k też są podpięte. Sam LCD działa, aż do zaznaczonej wcześniej linii kodu...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 sie 2015, o 19:57 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 gru 2014
    Posty: 1540
    Pomógł: 269

    Zobacz na ten schemat PCF8583, zwróć uwagę gdzie jest podłączony pin A0, który odpowiada za wybór adresu, w tym przypadku 0xA2.
    Z tego co pamiętam to gdy:
    A0 podłączony do Vcc to ustawiony jest adres 0xA2, a gdy
    A0 podłączony do GND to 0xA0

    A jak jest u Ciebie?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 sie 2015, o 20:02 
    Offline
    Nowy

    Dołączył(a): 10 sie 2015
    Posty: 16
    Pomógł: 0

    U mnie jest podłączony do masy, ale sprawdzałem obydwa adresy i jest tak samo...:(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 sie 2015, o 20:55 
    Offline
    Moderator
    Avatar użytkownika

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

    bartibv napisał(a):
    Mirku niestety nie mam napędu w laptopie :/ Może mogę gdzieś kupić samo DVD w wersji cyfrowej, wtedy niejako rozwiązałbym problem..?

    Wiesz co? ja bym zrozumiał, że jesteś na wyspie bezludnej i masz tylko tego laptopa bez napędu DVD ... ale w dzisiejszych czasach ? nie mów mi, że jeśli sam nie masz to nie znasz kogoś kto ma taki napęd, w szkole nawet - no gdziekolwiek ... sorki ale troszkę uważam to za sztuczny problem ... Myślę, że mniej czasu zajęłoby ci znaleźć gdzieś kogoś z DVD i skopiować sobie kod na pendrive ...

    ale ok tymczasem - to powiedz mi ? ... ty sobie przepisujesz kody bibliotek z książki? i nie sądzisz, że mogłeś już na tym etapie z tysiąc błędów popełnić ? ... Troszkę na własne życzenie się katujesz - tym bardziej jak widzę, co ty wyprawiasz "RĘCZNIE" przed wejściem w pętlę główną ... ręcznie jakieś twi start, twi stop .... .... sorki ale już tu sobie sam bat na siebie kręcisz

    Zapytam tylko jakie masz wydanie książki ? To starsze w miękkiej oprawie ? jeśli tak to zajrzyj do aktulalizacji na stronie atnel bo tam był mały błąd w którejś funkcji bodajże twi_stop() - trzeba poprawić

    trzeba też inicjalizować TWI - co niby już robisz - ale w porównaniu do książki nawet to dalej już mieszasz niemożebnie :(

    poza tym jak możesz wklejać schemat , który zawiera kupę i to poważnych błędów i pisać sobie w tekście żeby nie patrzeć na schemat bo ty masz jednak rezystory podciągające włączone na SDA i SCL ..... sorki ale przy takim podejściu to podchodzisz niepoważnie i nie szanujesz czasu tych ludzi na forum, którzy chcą ci pomóc - bo co z innymi babolami ? to ma być zgadywanka ?LCD jest przecież źle podłączony a ja słyszę że niby coś działa do którejś linijki a przy takim podłączeniu jak na tym schemacie nic nie powinno działać :(

    proszę więc potraktuj to nieco poważniej i narysuj ten schemat poprawnie i tak jak to masz podłączone - jeśli chcesz żeby ci pomóc .... zamiast urządzać tu kalambury

    poza tym zakładając nawet że jakaś linijka tekstu ci się wyświetla a później ZONK to znaczy że masz jakiegoś MEGA BABOLA na I2C i może nawet te rezystory masz źle podłączone - i co ? mamy zgadywać dalej jak ? Chce ci się tyle czasu tracić zamiast RAZ A PORZĄDNIE opisać problem ?

    Poza tym powiedz mi - w całej książce piszę to kilkakrotnie - NIE DEFINIUJE się F_CPU w kodzie a ty co robisz ???

    Kolejna rzecz ... czytałeś w książce o debugerze na jednej diodzie LED ? ... pewnie też nie - no to nawet poradnik wideo do tego nakręciłem

    http://mirekk36.blogspot.com/2014/04/pu ... ednej.html

    oglądałeś to? ... jeśli nie to obejrzyj i zacznij stosować - znajdziesz miejsce gdzie ci się kod zatrzymuje a ja mogę się założyć tu i teraz że zatrzymuje się na obsłudze TWI bo coś sprzętowo masz nie tak - a funkcje dla uproszczenia przekazu pisałem w sposób blokujący - czyli jak ktoś np nie da tych rezystorów albo źle podłączy coś to się zatrzyma i tak miało być w moim założeniu bo wtedy nawet łatwiej błąd znaleźć ... szczególnie takim debugerem i zrozumieć jak bardzo programowanie procków zależy od elektroniki a nie tylko od napisanego programu.

    czekam w takim razie na pełne i poprawne przedstawienie problemu - ale liczę też że sprawdzisz sam to o czym napisałem wyżej , i być może nawet sam już to rozwiążesz - czego ci życzę

    _________________
    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: 24 sie 2015, o 14:15 
    Offline
    Nowy

    Dołączył(a): 10 sie 2015
    Posty: 16
    Pomógł: 0

    Panowie mam rozwiązanie tylko nie zabijajcie ! :D

    Otóż okazało się, że na aukcji był błąd, opisany zegarek nie jest taki jak w BlueBooku, tylko jest DS1307, czego nie było widać, bo był przytarty uC, ale doszedłem do tego mierząc miernikiem pinologię ;)
    Także przepraszam Was wszystkich za zawracanie gitary, głupio mi strasznie! :(

    Mirku to chyba jest pierwsze wydanie bluebooka, kupowałem "używkę". A co do DVD jestem na wyjeździe, gdzie nikogo nie znam i głupio mi prosić obce osoby o użyczenie komputera :p, nie mniej poradziłem sobie pobierając bibliotekę, ze strony Atnela, gdzie są "poprawki" :)

    Odcinek o debugowaniu diodą oglądałem, tylko zamieniłem diodę, na komendę wyświetlania napisu "test", którą wklejałem linijka po linijce sukcesywnie jak na filmie, po to też rozbierałem funkcję, żeby sprawdzić dokładnie w którym miejscu funkcji TWI_read_buf się wywala :)

    Także jeszcze raz przepraszam za kłopot, idę dłubać i próbować, obiecuję się poprawić zarówno w opisie problemu jak i sprawdzaniu modułów:) Przepraszam Was serdecznie jeszcze raz i dzięki za cierpliwość:)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 sie 2015, o 16:09 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 gru 2014
    Posty: 1540
    Pomógł: 269

    Jeśli masz DS1307 to przecież łatwo możesz przerobić ten przykład z BB odnośnie PCF8583.

    Zobaczacz ten wątek. ;)

    A odnośnie płyty to idź kolego do punktu ksero lub jakiegoś zakładu fotograficznego, kup tam pendriva i poproś, aby Ci skopiowali na niego tą płytę.
    Zaoszczędzisz sobie mnóstwo czasu.



    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: 13 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 9 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