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 12 cze 2025, o 11:28


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
    Autor Wiadomość
    PostNapisane: 27 maja 2012, o 13:53 
    Offline
    Użytkownik

    Dołączył(a): 07 mar 2012
    Posty: 54
    Pomógł: 0

    Witam, realizuje cwiczenia na magistrali i2c. W kodzie ponizej zostalo zaprezentowane wyswietlanie godziny na lcd. Problem jest taki że godzina stoi w miejscu, wiem ze problem tkwi w przerwaniu i nie ustawia zmiennej pomocniczej int0_flag czyli tak jakby to przerwanie wogole sie nie wykonywalo (gdy usuniemy warunek w funkcji wyswitlajacej czas if (int0_flag) godzina sie zmienia).; Nie wiem gdzie popełniłem błąd, myśle ze rejestry do przerwania ustawiłem dobrze (dla Atmegi644P) globlane odblokowanie przerwan sei() tez jest. Gdzie tkwi problem?

    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: 27 maja 2012, o 16:28 
    Offline
    Moderator
    Avatar użytkownika

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

    No konfiguracja przerwania wygląda na poprawną ale co za problem w przerwaniu wstawić zmianę jakiegoś pinu portu na przeciwną za każdym razem i podłączyć do niego diodę LED i sprawdzić czy miga sobie co sekundę i mieć pewność że przerwanie się w ogóle wykonuje ????

    Bo jeśli się nie wykona czyli dioda nie będzie migać to wtedy wiesz przynajmniej co sprawdzać dalej albo program albo w ogóle połączenie z wyjścia INT układu RTC albo w ogóle podłącz LED'a do tego wyjścia bezpośrednio katodą i zobacz czy miga dioda co sekundę - przecież to wszystko da radę ładnie po kolei sprawdzić taką metodą debugera na jednej diodzie LED ;)

    _________________
    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: 27 maja 2012, o 21:04 
    Offline
    Użytkownik

    Dołączył(a): 07 mar 2012
    Posty: 54
    Pomógł: 0

    Wg mnie przerwanie wogóle się nie wykonuje, sprawdzilem to na osobnym programie :
    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.


    Podłączyłem Diodę do PC7 i jest ciągle zapalona, czyli na wyjsciu PC7 caly czas jest stan niski a powinien się zmieniać co sekundę. Jakiś pomysł co może być przyczyną?

    edit:
    w bibliotece iom16.h z ktorej zapewne korzystam :D znajduje sie cos takiego:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    w nocie do Atmegi znajdziemy że INT0 to LSB czyli 0 a nie 7, INT1 to 1 a nie 7 itd...
    także wklepałem ręcznie:
    EIMSK |= (1<<0);
    ale to nie pomogło także jest pewnie jeszcze inny problem



    Ostatnio edytowano 27 maja 2012, o 21:17 przez wasu, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 maja 2012, o 21:17 
    Offline
    Użytkownik

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

    A czy podłączałeś LED bezpośrednio do wyjścia INT zegarka RTC, jak sugerował Mirek :?:

    _________________
    Pozdrawiam
    PP



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 maja 2012, o 21:43 
    Offline
    Użytkownik

    Dołączył(a): 07 mar 2012
    Posty: 54
    Pomógł: 0

    okej, rozwiazalem problem ale moze nie bede mowil co bylo zle <lol2>



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 maja 2012, o 22:03 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 25 mar 2012
    Posty: 43
    Lokalizacja: Wrocław
    Pomógł: 0

    Podziel się informacją. Do tego służy forum. Przypuszczam, że nie zrobiłeś nowego projektu tylko zmieniałeś jakiś inny dlatego INT0 miał 7. Odczytywałeś nie tą bibliotekę co trzeba. Tak mi się przynajmniej wydaje :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 maja 2012, o 22:06 
    Offline
    Użytkownik

    Dołączył(a): 07 mar 2012
    Posty: 54
    Pomógł: 0

    nie podłączyłem wyjscia z RTC do INT0, hihi



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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