Ta strona używa ciasteczek (plików cookies), dzięki którym może działać lepiej. Dowiedz się więcejRozumiem i akceptuję
PCB.center

[C] STM32F4 Discovery HAL - 3 serwa wykonujące ruch jednocześnie.

Autor Wiadomość
Atom 




Posty: 55
Wysłany: 15-05-2017, 18:56   [C] STM32F4 Discovery HAL - 3 serwa wykonujące ruch jednocześnie.

Cześć!

Zacząłem się bawić płytką z kursu STM32 na bibliotekach HAL.
Moim zamysłem jest wysterowanie 3 serw TowerPro995 by wykonywały dokładnie taki sam ruch w jednym czasie. Wielowątkowość odpada jak w większości mikrokontrolerów.
Serwo zostało wysterowane w taki sposób, po wcześniejszych przeskalowaniach timerów:
Kod programu: Zaznacz cały

HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_1);
          TIM4->CCR1=800;
      HAL_Delay(1000);
      TIM4->CCR1=1900;
      HAL_Delay(1000);

Nie są to jakieś dokładne wyliczenia, tylko na razie tak poglądowo chciałem to zrobić.
Macie jakieś pomysły?
Pozdrawiam Was :-)

Polecany artykuł » Jak zrobić robota? Od żółtodzioba do pierwszego światłoluba



Aktualnie pracuje nad:
Line Follower.
Postaw piwo autorowi tego posta
 
 
marek1707 



Posty: 4197
Pomógł: 450 razy
Otrzymał 595 piw(a)
Skąd: WAW
Programuję w:
C, asm
Wysłany: 15-05-2017, 19:38   

"Wielowątkowość odpada jak w większości mikrokontrolerów" :?: :shock:

Postaw piwo autorowi tego posta
 
 
Atom 




Posty: 55
Wysłany: 15-05-2017, 19:45   

No z tego co wyczytałem to moja płytka STM32F407G nie obsługuje tego, mam mylne informacje? :D


Aktualnie pracuje nad:
Line Follower.
Postaw piwo autorowi tego posta
 
 
marek1707 



Posty: 4197
Pomógł: 450 razy
Otrzymał 595 piw(a)
Skąd: WAW
Programuję w:
C, asm
Wysłany: 15-05-2017, 20:12   

Co to znaczy " płytka STM32F407G nie obsługuje tego"? Płytka ma (całkiem fajny) procesor, który co prawda nie ma sprzętowej wielowątkowości, ale wykonuje taki program jaki napiszesz. Jeśli weźmiesz gotowy lub samodzielnie wysilisz się na system wielowątkowy - to tak będzie. Jak nie, to nie.

Ostatnio popularny » Kurs elektroniki II - #1 - spis treści


Postaw piwo autorowi tego posta
 
 
Elvis 



Posty: 1236
Pomógł: 90 razy
Otrzymał 229 piw(a)
Skąd: wawa
Programuję w:
C, asm
Wysłany: 15-05-2017, 22:15   

W sumie stwierdzenie, że "wielowątkowość odpada" ma sens - po prostu nie jest potrzebna.
Inna sprawa, że wielowątkowość w przypadku mikrokontrolerów działa całkiem dobrze. Nawet na Arduino można uruchomić FreeRTOS i cieszyć się wielowątkowością.
Atom, nie wiem gdzie wyczytałeś cytowane stwierdzenie, ale powinieneś bardziej uważać na dobór źródeł informacji.

Postaw piwo autorowi tego posta
 
 
Atom 




Posty: 55
Wysłany: 16-05-2017, 09:31   

Jak nie jest potrzebna to co byś proponował?


Aktualnie pracuje nad:
Line Follower.
Postaw piwo autorowi tego posta
 
 
quandziadek 



Posty: 31
Otrzymał 5 piw(a)
Wysłany: 16-05-2017, 17:37   

Zakładając, że te serwa działają tak samo, to możesz po prostu podpiąć je wszystkie do jednego pinu. Jeśli wygodniej jednak będzie podłączyć do 3 osobnych pinów, to po prostu wpisz sobie taką samą wartość do każdego z kanałów:
Kod programu: Zaznacz cały

TIM4->CCR1=800;
TIM4->CCR2=800;
TIM4->CCR3=800;

Ostatnio zmieniony przez quandziadek 16-05-2017, 17:38, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 
 
Atom 




Posty: 55
Wysłany: 16-05-2017, 18:38   

Wolałbym na 3 piny. Podanie takich samych wartości nie powoduje niestety tego ze wykonują się w jednym czasie


Aktualnie pracuje nad:
Line Follower.
Postaw piwo autorowi tego posta
 
 
deshipu 




Posty: 1993
Pomógł: 102 razy
Otrzymał 172 piw(a)
Programuję w:
Python, C, Lua
Należę do:
Nigmalabs
Moje roboty:
uKubik, pKubik, Katka, Tote

Wysłany: 16-05-2017, 22:45   

Powoduje. Różnica jest niedostrzegalna gołym okiem -- wszystkie praktycznie w tym samym momencie rozpoczną ruch do zadanego położenia. Oczywiście jeśli są różne, różnie zasilane, etc. to ten ruch nie będzie identyczny i zapewne nie osiągną tego położenia jednocześnie, ale wielowątkowość nic ci tu nie pomoże.

Postaw piwo autorowi tego posta
 
 
Atom 




Posty: 55
Wysłany: 17-05-2017, 20:28   

Zadziałało :D
DZIĘKUJE BARDZO


Aktualnie pracuje nad:
Line Follower.
Postaw piwo autorowi tego posta
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Wersja do druku

Skocz do:  

Nie rozwiązałeś swojego problemu? Zobacz podobne tematy: Dylemat: jaki język?... "Mikroprocesoro... Czym programujecie u... Jaki język programow...
lub przeszukaj forum po wybranych tagach: discovery, hal, jednoczesnie., ruch, serwa, stm32f4, wykonujace


Powered by phpBB modified by Przemo © 2003 phpBB Group
Popularne kursy: Arduinopodstawy elektroniki