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 10 lip 2025, o 22:21


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
    Autor Wiadomość
     Tytuł: PPM
    PostNapisane: 5 wrz 2016, o 23:35 
    Offline
    Użytkownik

    Dołączył(a): 28 cze 2013
    Posty: 99
    Pomógł: 2

    Witam
    Potrzebuję pomóc ź protokołem PPM.
    Można to zrobić na jednym timerze? Nie mogę sobie wyobrazić, jak przeliczyć 8 kanałów.
    Obrazek



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: PPM
    PostNapisane: 6 wrz 2016, o 10:47 
    Offline
    Nowy

    Dołączył(a): 16 maja 2016
    Posty: 24
    Pomógł: 3

    A chodzi o nadawanie czy odbiór?
    Jeśli odbiór, to sprawa jest prosta - mierzysz czas między zboczami. Można to zrobić przez przerwanie, które jest wywoływane zboczem i odczytuje stan timera. Może potem zerować timer lub też zapamiętać jego wartość, by przy następnym przerwaniu obliczyć różnicę.
    Jeśli chodzi o nadawanie, to potrzebujesz tablicy wartości długości okresu (w tym przypadku 8 elementowa), oraz indeksu/wskaźnika który element tablicy ma być aktywny. A działać ma to mniej więcej tak:
    - zerujesz wyjście
    - opóźnienie 0,3ms
    - ustawiasz wyjście
    - odczytujesz z tablicy wartość opóźnienia i wpisujesz go do timera
    - zwiększasz indeks, by wskazywał następny czas
    - czekasz na zakończenie zliczania timera
    i od nowa, aż zostaną wysłanie wszystkie impulsy i na koniec impuls stop.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: PPM
    PostNapisane: 6 wrz 2016, o 19:32 
    Offline
    Użytkownik

    Dołączył(a): 28 cze 2013
    Posty: 99
    Pomógł: 2

    Chodzi mi o nadanie ramki.
    W jakim trybie mam skonfigurować timer TCT czy PWM, jak szybko ma liczycz?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: PPM
    PostNapisane: 6 wrz 2016, o 20:32 
    Offline
    Nowy

    Dołączył(a): 16 maja 2016
    Posty: 24
    Pomógł: 3

    Pełny projekt na Arduino jest na https://github.com/Hasi123/generate-ppm ... odelay.ino



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: PPM
    PostNapisane: 6 wrz 2016, o 22:43 
    Offline
    Użytkownik

    Dołączył(a): 28 cze 2013
    Posty: 99
    Pomógł: 2

    Jak przetłumaczyć ten fragment kodu do Języka C
    Składnia: [ Pobierz ] [ Ukryj ]
    język cpp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: PPM
    PostNapisane: 7 wrz 2016, o 07:10 
    Offline
    Nowy

    Dołączył(a): 16 maja 2016
    Posty: 24
    Pomógł: 3

    To nie jest czyste C tylko Arduino. W Arduino mamy specjalne funkcje do sterowania wyjściami.
    Myślę, że najlepiej wyjaśnie na podstawie wybranyck kilku linijek w/w kodu:
    Składnia: [ Pobierz ] [ Ukryj ]
    język cpp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    linia 1: definiujemy polaryzację sygnału PPM, tu onState jest 1 czyli HIGH
    linia 2: definiujemy które wyjście będzie wyjściem sygnału PPM, w tym przypadku jest to pin Arduino nr 10, który odpowiada pinowi atmega PB2
    linia 3: ustawiamy pin 10 jako wyjście cyfrowe
    linia 4: ustawia wyjście cyfrowe Arduino nr 10 w stan !onState czyli niski.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: PPM
    PostNapisane: 7 wrz 2016, o 13:14 
    Offline
    Użytkownik

    Dołączył(a): 28 cze 2013
    Posty: 99
    Pomógł: 2

    Dlaczego przerwanie jest tak szybkie około 19,76 KHz ?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: PPM
    PostNapisane: 7 wrz 2016, o 14:44 
    Offline
    Użytkownik

    Dołączył(a): 28 cze 2013
    Posty: 99
    Pomógł: 2

    Już zaczęłę pisać kod, sprawdzam po kawałku z oscyloskopem na pinie OC1A pojawił sie tylko stan wysoki.Nie miał się pojawić start puls?
    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  
     Tytuł: Re: PPM
    PostNapisane: 9 wrz 2016, o 19:13 
    Offline
    Użytkownik

    Dołączył(a): 28 cze 2013
    Posty: 99
    Pomógł: 2

    Co będę musiał zrobić by skompilować ten kod w C++ ?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: PPM
    PostNapisane: 9 wrz 2016, o 21:27 
    Offline
    Nowy

    Dołączył(a): 16 maja 2016
    Posty: 24
    Pomógł: 3

    Podaj jaki masz procesor i jak taktowany. Od tego zależy konfiguracja timerów. W różnych procesorach nazwy rejestrów i funkcje mogą być różne.
    Poniżej kod "przetłumaczony" na C, sprawdziłem tylko na szybko symulację w AS.

    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  
     Tytuł: Re: PPM
    PostNapisane: 9 wrz 2016, o 22:01 
    Offline
    Użytkownik

    Dołączył(a): 28 cze 2013
    Posty: 99
    Pomógł: 2

    procesor mam atmega32 i jest taktowany 16MHz



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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