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 9 lip 2025, o 17:48


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
    Autor Wiadomość
    PostNapisane: 4 cze 2013, o 14:24 
    Offline
    Nowy

    Dołączył(a): 04 cze 2013
    Posty: 3
    Pomógł: 0

    Witam,

    Od dłuższego czasu próbuję uruchomić zegar RTC na swojej płytce, niestety nie potrafię sobie poradzić z problemem na jaki się natknąłem. Napisałem program, w którym na wyświetlaczu LCD wyświetla się aktualna godzina. Wszystko działa dobrze na zestawie uruchomieniowym ATB rev:1.03. Niestety problem pojawia się na mojej płytce. Otóż czas wyświetlany na LCD nie aktualizuje się. Po zresetowaniu atmegi wyświetla się czas aktualny w momencie resetu, ale później brak kolejnych aktualizacji. Stan na pinie PD2 (przerwanie INT0) zmienia się od 0 do 5V, co sekundę więc wydaje się być ok.
    Podejrzewam, że problemem może być transmisja I2C, ponieważ napięcie na nóżce SCL zmierzone za pomocą multimetru wynosi 0V natomiast w przypadku zestawu uruchomieniowego napięcie to 5V.

    W załączniku dołączam schemat.

    Bardzo proszę o pomoc .



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 cze 2013, o 14:54 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    hmmm .... gdzie masz ten schemat ??

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 cze 2013, o 14:56 
    Offline
    Moderator
    Avatar użytkownika

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

    a przeglądałeś ten schemat ATB dokładnie ? widziałeś że są tam rezystory podciągające SDA i SCL do VCC ( 2x po 4,7K) ? coś mi się wydaje że nie widziałeś i pewnie ich nie zastosowałeś - a wtedy nie ma co się dziwić opisywanym przez ciebie efektom

    inny powód to może być że nie zastosowałeś funkcji i2cSetBitRate() .... czytasz na naszej stronie o uaktualnieniach do DVD ?

    http://atnel.pl/uaktualnienia-programow-do-dvd.html

    jak nie ? to zachęcam cię do zajrzenia

    _________________
    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: 4 cze 2013, o 18:09 
    Offline
    Nowy

    Dołączył(a): 04 cze 2013
    Posty: 3
    Pomógł: 0

    Przepraszam za brak obrazka, byłem przekonany, że dodałem schemat. Teraz już jest. Zastosowałem rezystory podciągające. Zastosowałem funkcję i2cBitRate(), wszystko działa dobrze w zestawie uruchomieniowym, a na mojej płytce tak jak wcześniej opisałem. Dzięki za linka :)

    Obrazek



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 cze 2013, o 19:08 
    Offline
    Moderator
    Avatar użytkownika

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

    To jeszcze sprawdź adres na I2C bo masz podpięte A0 do VCC a adres jaki ? podłącz A0 do GND ;) i sprawdź tak na szybko - ale i tak doczytaj o adresowaniu tzn ustalaniu adresu jak ruszy

    _________________
    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: 5 cze 2013, o 15:04 
    Offline
    Nowy

    Dołączył(a): 04 cze 2013
    Posty: 3
    Pomógł: 0

    Podłączyłem A0 do GND. Niestety problem w dalszym ciągu jest ten sam. Adresowanie mam zdefiniowane w następujący sposób: PCF8583_ADDR 0xA0 .

    Zamieszczam również kod odpowiedzialny za rtc:
    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.


    Wykorzystane funkcje z pliku i2c.h:
    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.

    Czy ma ktoś może jakieś pomysły co może być nie tak?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 cze 2013, o 16:41 
    Offline
    Uzytkownik zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 16 lip 2012
    Posty: 2088
    Lokalizacja: Leżajsk / Kraków
    Pomógł: 411

    if( int0_flag ){} umieść w nieskończonej pętli while(1){}, bo teraz nie ma się co dziwić, że raz się wykona odczyt.
    PS.
    Kod umieszczaj w znacznikach syntax=c

    _________________
    Dragonus Cracovus: Biomagia



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 cze 2013, o 18:37 
    Offline
    Moderator
    Avatar użytkownika

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

    Cytuj:
    Czy ma ktoś może jakieś pomysły co może być nie tak?


    przede wszystkim to twój program stoi do góry nogami .... skąd ty wymyśliłeś żeby definicje funkcji powrzucać do pliku i2c.h ??? to jest masakra :( ... masz przecież przykłady działające na DVD, a w książce opis o podziale projektu na pliki - tymczasem ty tworzysz po swojemu wszystko ?

    tyczy się to także tego co napisał wyżej kolega Krauser - podstawa programu to nieskończona pętla while(1) albo for(;;) w głównej funkcji programu main(). Więc może rzuć okiem jeszcze raz proszę na podstawy C opisane w książce ok ? będzie ci łatwiej dalej pisać programy

    _________________
    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: 8 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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