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 22 maja 2025, o 09:34


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
    Autor Wiadomość
    PostNapisane: 29 sty 2018, o 16:23 
    Offline
    Nowy

    Dołączył(a): 29 sty 2018
    Posty: 4
    Pomógł: 0

    Witam piszę aplikację obsługującą silnik krokowy. Wykorzystuje do tego PWM ( Nie pytać dlaczego, tak chciał prowadzący). Na początku robiłem to na przerwaniach, ale się nie spodobało. Miałem wykorzystać do tego DMA + PWM i ładować z DMA wartości do periodu, tak aby okres ten był zmienny. Napisałem aplikację, ale niestety nie zmienia się period jest dalej stały. Rejestr periodu wyciągnąłem z dokumentacji i ująłem w programie ( ARR ) . Analizowałem kod i nie mogę dojść do tego co jest w kodzie nie tak. Wstawiam tu implementację kodu z samymi konfiguracjami DMA TIMERA i PWM'a z wypełnioną inkrementującymi się wartościami (okres powinien być coraz dłuższy). Z góry dziękuję za ewentualną pomoc / podpowiedź. Pozdrawiam.

    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: 29 sty 2018, o 16:51 
    Offline
    Użytkownik

    Dołączył(a): 22 gru 2013
    Posty: 296
    Lokalizacja: Szczecin
    Pomógł: 47

    Nie wnikając w szczegóły w:
    DMAInit.DMA_PeripheralBaseAddr = (u16)TIM1_ARR_Address;

    adres ARR powinien być chyba 32 bitowy? (czy się mylę?)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 sty 2018, o 17:00 
    Offline
    Nowy

    Dołączył(a): 29 sty 2018
    Posty: 4
    Pomógł: 0

    Tak zgadza się powinien być 32 bitowy zmieniłem to, ale nadal mam kłopot i walczę z tym



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 sty 2018, o 17:18 
    Offline
    Użytkownik

    Dołączył(a): 22 gru 2013
    Posty: 296
    Lokalizacja: Szczecin
    Pomógł: 47

    Strzelam:
    DMAInit.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word;

    ps. tak na "oko" ( nie chce mi się grzebać w dokumentacji, bo za duża) ale może Half..



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 sty 2018, o 17:46 
    Offline
    Nowy

    Dołączył(a): 29 sty 2018
    Posty: 4
    Pomógł: 0

    Niestety błąd dalej występuję. Coś czuję, że to nie jest związane z tym.



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

    Dołączył(a): 15 lut 2016
    Posty: 259
    Lokalizacja: Norwegia
    Pomógł: 16

    a bufor nie powinien być też 32 bitowy? widzę że u Ciebie jest u16 PWM_Buf[198];

    _________________
    SP2LUB - LA1BUA



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

    Dołączył(a): 22 gru 2013
    Posty: 296
    Lokalizacja: Szczecin
    Pomógł: 47

    w STM32F10x DMA może przesyłać dane po 8, 16 lub 32 bity.
    Trzeba tylko nad tym zapanować.



    ps. przestudiuj: AN2548



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 30 sty 2018, o 06:52 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 05 sie 2012
    Posty: 35
    Pomógł: 4

    A czy inkrementacja adresu peryferiów nie powinna zostać wyłączona?

    DMAInit.DMA_PeripheralInc = DMA_PeripheralInc_Enable;



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

    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