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 5 maja 2025, o 14:37


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
    Autor Wiadomość
    PostNapisane: 21 mar 2018, o 22:58 
    Offline
    Użytkownik

    Dołączył(a): 18 cze 2015
    Posty: 372
    Pomógł: 0

    Witam wszystkich.

    Mam prośbę o sprawdzenie kodu obsługującego przerwanie 16 bit w atmedze 8. Jest to moja pierwsza próba z tym procesorem, jeśli chodzi o to
    zagadnienie. Czytałem notę katalogową, ale zaznaczam, że nie wszystko jestem w stanie przeczytać ze zrozumieniem w obcym języku. Zrobiłem ,co mogłem.
    Kod mogę sprawdzić dopiero jutro, ale dzisiaj napisałem. Z tego, co znalazłem w necie, to muszę użyć dwóch przerwań (A i B), a nie tak, jak w atmedze 16, czy
    32 tylko jednego. Dodatkowo do pinów PB1(OC1A) i PB2(OC1B) podłączyłem wyświetlacz lcd. Czy tak może być przy moim kodzie, czy muszę je ustawić, jako
    zwykłe piny IO, lub czy są one domyślnie przy starcie ustawione, jako zwykłe IO i nic nie muszę robić. Przepraszam za tyle pytań, ale jak wspomniałem, nie
    wszystko przeczytam w nocie i proszę o pomoc. Dzięki z góry za wszelką pomoc.

    Oto kod:

    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: 22 mar 2018, o 14:05 
    Offline
    Użytkownik

    Dołączył(a): 18 cze 2015
    Posty: 372
    Pomógł: 0

    No więc przetestowałem dzisiaj kod i okazało się,że działa prawidłowo, a przynajmniej tak sądzę. Zmieniłem tylko prescaler
    na 256, dzięki czemu uzyskałem równo 100Hz. Chociaż ta dokładność nie była tak istotna. Szkoda, że nikt nie zechciał się
    wypowiedzieć.
    Jeżeli jest tu jakiś chochlik , albo można by to napisać lepiej, to proszę o jakieś rady. Pozdrawiam.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 mar 2018, o 14:11 
    Offline
    Moderator
    Avatar użytkownika

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

    Nie ma się nad czym zastanawiać czy podpowiadać jak masz wszystko dobrze napisane i działa.

    _________________
    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: 22 mar 2018, o 18:21 
    Offline
    Użytkownik

    Dołączył(a): 18 cze 2015
    Posty: 372
    Pomógł: 0

    Witam Mirku.
    Dziękuję za odpowiedź. I o to mi chodziło, a żeby krótko i na temat odpowiedzieć, czy jest dobrze, czy nie. albo, że może tak być, ale lepiej byłoby tak.....
    Jeżeli nie ma żadnej odpowiedzi, to nie wiem, czy jest ok, a to, że "działa", to nie zawsze jest 100% sukcesu.
    Chciałem jeszcze dopytać, ponieważ nie chcę niepotrzebnie używać timera 16 bitów, jeśli nie jest to konieczne. Jeżeli w kodzie mam tak:

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


    a więc nie przekraczam 255 i dalej mam tak:

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


    i w OCR1A mam 155, a więc nie przekraczam 255, to mogę zastosować timer 8 bitowy ?

    Ale jeśli zmieniłem prescaler na 256 i w OCR1A musiałem wpisać wartość przekraczającą 255, to muszę zastosować timer 16 bitowy ? W pętli nadal pozostała
    wartość Timer1 = 100. wiem, że w książce opisane, ale chciałem doprecyzować, czy dobrze myślę. Dziękuję i pozdrawiam.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 mar 2018, o 18:22 
    Offline
    Moderator
    Avatar użytkownika

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

    bardzo dobrze myślisz ;)

    _________________
    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: 22 mar 2018, o 20:04 
    Offline
    Użytkownik

    Dołączył(a): 18 cze 2015
    Posty: 372
    Pomógł: 0

    Dziękuję za rozwianie wątpliwości. Teraz całkiem pojąłem ;) . Pozdrawiam.



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO