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 23 lip 2025, o 04:34


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
    Autor Wiadomość
    PostNapisane: 11 mar 2017, o 12:43 
    Offline
    Użytkownik

    Dołączył(a): 07 paź 2016
    Posty: 29
    Pomógł: 0

    Witam.
    Proszę o informację czy jest możliwe wygenerowanie częstotliwości 36kHz w trybie PWM.
    Procesor to ATMEGA 328 taktowana kwarcem 18 432 000.
    Poniżej fragment kodu .
    Kod:
    OCR0A = 128;

    TCCR0A |= (1 << COM0A1);
          
    TCCR0A |= (1 << WGM01) | (1 << WGM00);
       
    TCCR0B |= (1 << CS00);






    Program działa ale generuje częstotliwość 72kHz czyli dwa razy większą.
    Poradziłem z tym sobie przepuszczając sygnał przez kostkę 4013 która jest dzielnikiem przez 2.

    Dodam że chodzi tylko o częstotliwość generowaną całkowicie sprzętowo bo wiem że można ustawić TIMER na wywołanie przerwania wewnętrznego
    i w procedurze przerwania zmieniać stan wyjścia uzyskując żądane 36kHz.



    Ostatnio edytowano 11 mar 2017, o 13:07 przez elmuerto, łącznie edytowano 2 razy

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 mar 2017, o 12:56 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 lis 2015
    Posty: 1448
    Lokalizacja: okolice Warszawa
    Pomógł: 149

    Witam,
    edytuj post i wklej w syntax...C. to ważne. ;)
    18432000/8/64=36000 :)
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    chyba tak. ;)

    ------------------------ [ Dodano po: 10 minutach ]

    :? momento nie ten tryb....ten zlicza do 255.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 mar 2017, o 13:19 
    Offline
    Użytkownik

    Dołączył(a): 07 paź 2016
    Posty: 29
    Pomógł: 0

    Ano właśnie.
    Po wgraniu tych ustawień oscyloskop pokazał jakieś 9kHz przy wypełnieniu jakieś 25%



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 mar 2017, o 13:36 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 lis 2015
    Posty: 1448
    Lokalizacja: okolice Warszawa
    Pomógł: 149

    A czy to musi być w trybie 3 ? bo tu nie widzę toglowania przy porównaniu.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 mar 2017, o 13:58 
    Offline
    Użytkownik

    Dołączył(a): 07 paź 2016
    Posty: 29
    Pomógł: 0

    W zasadzie to uzyskany efekt mnie zadowala.
    Zastanawiałem się tylko czy nie można pozbyć się tego scalaka dzielącego przez 2.
    Dopiero zaczynam zabawę z mikrokontrolerami .
    Nie było by problemu gdyby był prescaler 2 ale nie ma.
    Gdzieś wyczytałem że możliwości generowania częstotliwości PWM są ograniczone przez dostępne prescalery ale czy to prawda ?

    Jeśli jest jakiś tryb który rozwiązuje problem to zaproponuj proszę wcale nie upieram się przy trybie 3.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 mar 2017, o 14:20 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 lis 2015
    Posty: 1448
    Lokalizacja: okolice Warszawa
    Pomógł: 149

    zerknij na tryb CTC w timer0, WGM01
    wg mnie
    preskaler 1, CS00
    COM0A0 , Toggle OC0A on Compare Match.
    czyli 18432000 / 1 / 256 / 2 = 36000
    Obrazek

    ------------------------ [ Dodano po: 4 minutach ]

    Obrazek


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 mar 2017, o 14:32 
    Offline
    Użytkownik
    Avatar użytkownika

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

    Witam
    Możesz zastosować tryb 10 - PWM, Phase Correct - ICR'em określasz częstotliwość, a OCR'em wypełnienie.
    Próbuj - jeśli nie pójdzie - pomogę.

    Pozdr.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 mar 2017, o 08:54 
    Offline
    Użytkownik

    Dołączył(a): 07 paź 2016
    Posty: 29
    Pomógł: 0

    Witam.

    Nie powiem że wszystko już rozumiem i ogarniam ale najważniejsze że działa :D

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


    Powyżej kod .
    Dziękuję za pomoc.

    Pozdrawiam.



    Ostatnio edytowano 12 mar 2017, o 15:04 przez elmuerto, łącznie edytowano 2 razy

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 mar 2017, o 12:36 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 lis 2015
    Posty: 1448
    Lokalizacja: okolice Warszawa
    Pomógł: 149

    fajnie że działa. :)
    Taki mały jeszcze szczególik, właściwie dwa. :roll:

    1- edytuj posty i wklej kody w syntax>>C. :!:

    2- w kodzie ustawiasz w Mode 5. (PWM, Phase Correct)
    elmuerto napisał(a):
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    ustawiając w rejestrze TCCR0A --> bit COM0A1 , zobacz co się ustawiło. :D
    Teraz wszystko myślę będzie jaśniejsze. ;)
    Obrazek
    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: 9 ] 

    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:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO