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 21 maja 2025, o 23:40


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
    Autor Wiadomość
    PostNapisane: 4 sty 2018, o 03:26 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 04 mar 2014
    Posty: 85
    Lokalizacja: Greystones-Irlandia
    Pomógł: 1

    Witam
    Czy ktoś by mógł w prosty sposób wytłumaczyć jak liczyć czas przerwania i jak wykonać coś po danym odcinku czasu np zapalić LED albo wykonać dana operacje po prostu ze by pokazać jak można wykorzystywać timery
    Wiem ze Timer0 i Timer2 są 8bit a Timer1 16bit
    wiec tak dajmy na to ze chcemy zrobić coś na Timer2 czyli 8bit (256 kroków)
    Mamy kwarc 8Mhz i do wyboru prescaler czyli dzielnik (1,8,64,256,1024)
    czyli tak wartość kwarcu dzielimy przez prescaler 8000000/1024=7812.5 i co dalej z tym robimy ?
    czy może ktoś to wytłumaczyć łopatologicznie
    tutaj dodaje tez kod na atmeg328p
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język basic4gl
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    _________________
    Faber Est Quisque Suae Fortunae



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 sty 2018, o 08:39 
    Offline
    Użytkownik

    Dołączył(a): 31 lip 2016
    Posty: 154
    Pomógł: 4

    Witam.
    Ja proponuję użyć prescalera 256 w wyniku otrzymujemy liczbę całkowitą 31250.
    Następnie wpisujemy daną wartość do rejestru Timer2.
    Wykorzystujemy instrukcję Load Timer, np. Load Timer2, 250 gdzie 31250 zostanie dodatkowo
    podzielona przez 250 poniważ licznik timera musi tę wartość zliczyć.

    Jako,że Timer2 jest ośmio bitowy to brakującą wartość 6 program sam wstawi do
    rejestru licznika Timer2 aby nastąpiło przepełnienie. Maksymalną wartość jaką możemy wpisać to 255.

    czyli: 8000000/256/250 = 125Hz = 8ms
    co 8ms nastąpi przerwanie

    przykład nr2
    Load Timer2, 125
    8000000/256/125 = 250Hz = 4ms

    Load Timer2, 250 musisz wpisać w programie głównym jak i na początku przerwania.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 sty 2018, o 12:11 
    Offline
    Użytkownik

    Dołączył(a): 19 lip 2013
    Posty: 771
    Pomógł: 40

    https://www.elektroda.pl/rtvforum/viewtopic.php?p=9508684#9508684 Tam w załącznikach jest prościutki kalkulator kalkavr. Ściągnij sobie i życie stanie się łatwiejsze.

    przyklad dla 16mhz dla 8 przelicz sobie kalkulatorem

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


    Mam nadzieje,ze sie nie pomylilem ,bo pisze z pamieci.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 sty 2018, o 16:29 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 04 mar 2014
    Posty: 85
    Lokalizacja: Greystones-Irlandia
    Pomógł: 1

    zorro
    Dlaczego jest tu 250
    8000000/256/250 = 125Hz = 8ms
    i jak policzyles ze 125Hz = 8ms
    są jakieś kalkulatory do tego ?


    grzeniu73
    powiedz mi z kąd się wzięło timer2=6 to 6 z kad?
    i z kad jest tu 125
    If Dziel(1) = 125 Then

    _________________
    Faber Est Quisque Suae Fortunae



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 sty 2018, o 19:04 
    Offline
    Użytkownik

    Dołączył(a): 16 wrz 2014
    Posty: 264
    Pomógł: 12

    @kulamario, zobacz: MkAvrCalculator -> Narzędzia -> AVR Timer Kalkulator
    Możesz tam powstawiać różne dane, popatrzeć na wzory etc.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 sty 2018, o 19:36 
    Offline
    Użytkownik

    Dołączył(a): 19 lip 2013
    Posty: 771
    Pomógł: 40

    kulamario napisał(a):
    zorro
    Dlaczego jest tu 250
    8000000/256/250 = 125Hz = 8ms
    i jak policzyles ze 125Hz = 8ms
    są jakieś kalkulatory do tego ?


    grzeniu73
    powiedz mi z kąd się wzięło timer2=6 to 6 z kad?
    i z kad jest tu 125
    If Dziel(1) = 125 Then


    Ja tam babola dalem wpisalem 8ms, a powinno byc 4ms. Sorki.
    4x125= 500ms
    gdybys zostawil taktowanie 8mhz to byloby
    8ms x 125 czyli sekunda.
    Tak jak podalem sciagnij sobie kalkavr i tam w bardzo prosty sposob policzysz sobie.
    I prosze Cie "z kad" pisze sie "skad".



    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 1 gość


    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