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 7 kwi 2025, o 19:55


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
    Autor Wiadomość
    PostNapisane: 2 wrz 2020, o 09:22 
    Offline
    Nowy

    Dołączył(a): 16 gru 2019
    Posty: 8
    Pomógł: 0

    Witam, mam problem z PWM na mikrokontrolerze Attiny. A dokładniej chciałem przy pomocy sprzętowego pwm (1kanał Oc0 PB2) wysterowac dwa rozne napiecia na dwoch pinach. Czesciowo mi to zadziałało, a konkretniej gdy ustalane wartosci są inne i zmienne w czasie po probie przypisania ich do pwm wystawiane są takie same wartości pwm (te same napięcia). Natomiast gdy do jednej wpisze jedną stałą wartosc, a do drugiej wartosc przeliczaną co 100ms to wszystko działa poprawnie. Jest mozliwosc wystawienia dwóch róznych wartosci napięcia na dwoch roznych pinach przy pomocy jednego kanału pwm? Wykorzystałem kod z bluebooka. Kod załączam na dole.

    Celem jest ustalanie dwóch różnych napiec, na dwoch roznych pinach przy pomocy jednego kanału. Gdy wpisuje dwie rozne przeliczone wartosci do zmiennych to wystawiane jest takie same napiecie. Natomiast gdy do jednej wpisuje stałą wartosc a do drugiej przeliczoną to wtedy wystawiane są poprawne napięcia. Spotkał się ktoś z takim przypadkiem i wie w czym leży problem?
    Z góry bardzo dziękuję za pomoc.
    Pozdrawiam, Patryk

    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: 2 wrz 2020, o 13:38 
    Offline
    Użytkownik

    Dołączył(a): 05 gru 2017
    Posty: 428
    Lokalizacja: Puck
    Pomógł: 7

    Witaj xpatrgk

    Gdybyś spróbował coś takiego

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


    Miałbyś dwie zmienne niezależnie dla każdego wyjścia sterowane z jednego PWM
    I myślę że tu powinna zajść zmiana ( kombinuję bez sprawdzania na sucho więc
    mogę się mylić )
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    nie sprawdzałem lecz biorę to na chłopski rozum ;)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 wrz 2020, o 16:58 
    Offline
    Użytkownik

    Dołączył(a): 05 gru 2017
    Posty: 428
    Lokalizacja: Puck
    Pomógł: 7

    Przepraszam ale coś mi się wydaje że w pierwszej części
    postu z kodem wypisałem bzdury i proszę nie brać
    tego kodu pod uwagę :mrgreen:



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 wrz 2020, o 18:30 
    Offline
    Użytkownik

    Dołączył(a): 07 cze 2016
    Posty: 563
    Pomógł: 143

    xpatrgk napisał(a):
    Jest mozliwosc wystawienia dwóch róznych wartosci napięcia na dwoch roznych pinach przy pomocy jednego kanału pwm?


    Widzę, że nie za bardzo rozumiesz zasadę działania sprzętowego PWM. Nie napisałeś, o jaki dokładnie ATtiny chodzi ani jaką częstotliwością go taktujesz, więc trudno tu przedstawić działający kod, ale tak naprawdę raczej nie będziesz potrzebował ani dwóch timerów ani przerwania. Na przykład dla ATtiny2313 można zrobić mniej więcej tak (nie mam możliwości przetestownia):
    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.


    ...chyba, że koniecznie potrzebujesz podziału przez 200 lub musisz użyć innych pinów. Wtedy będzie musiał generować programowo w przerwaniu, tylko nieco inaczej, niż to próbowałeś zrobić.



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

    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