Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 4 lip 2026, o 15:16


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 5 mar 2014, o 17:30 
Offline
Nowy

Dołączył(a): 05 gru 2012
Posty: 3
Pomógł: 0

Witam,
Projektuje na potrzeby pracy inżynierskiej sterownik do silników BLDC z wykorzystaniem czujników Halla na procku AT90PWM3B. Procek oprócz sterowania silnikiem i odczytywaniem stanów czujników ma podczepiony wyświetlacz lcd4x16, komunikacje po rs232 i 3 przyciski do przełączania ustawień. Sterowanie silnikiem odbywa się za pomocą modułu PSC, w którym mam dostępne 6 synchronicznych kanałów PWM. Oprócz modułu PSC wykorzystuje 3 komparatory analogowe z dopiętymi na ich wejścia czujnikami Halla. Odpowiednie sekwencje sterujące wywoływane są poprzez przerwania od komparatorów analogowych.
Wyświetlacz, przyciski i komunikacja po rsie działa, natomiast mam problem z przełączaniem sekwencji na tranzystory kluczujące, a mianowicie wyjścia PWM kompletnie głupieją... zamiast odpowiednio się przełączać to włączają się wszystkie naraz zaraz po wystąpieniu jakiegokolwiek przerwania ze strony komparatorów. Próbowałem odpalać sam moduł PSC bez wyświetlacza, przycisków i RSa, ale niestety problem pojawiał się nadal. Jeżeli ktokolwiek miałby chwilę czasu i mógł sprawdzić kod, który zamieszczam poniżej, byłbym ogromnie wdzięczny za jakąkolwiek pomoc.

Załącznik:
modul_sterujacy_2.0.pdf


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

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


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 mar 2014, o 18:10 
Offline
Nowy

Dołączył(a): 25 sie 2013
Posty: 12
Pomógł: 2

Volatile Twoim przyjacielem ;)
Przejrzyj ten artykuł http://mirekk36.blogspot.com/2011/08/test.html, wile powinien Ci wyjaśnić.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 mar 2014, o 19:58 
Offline
Nowy

Dołączył(a): 05 gru 2012
Posty: 3
Pomógł: 0

Ustawiłem volatile do zmiennej przetrzymującej stan czujników, ale dalej bez zmian. Procesor jakby nie załapuje tego że ma odłączyć odpowiednie wyjścia PSC tylko załącza wszystkie naraz. Jak wyłączyłem PSC i próbowałem uruchomić na głupiego tzn set/reset pin to też się robią jaja... Jak wywołuje wartość zmiennej z czujników na lcd to jest wszystko ok, zmienia się tak jak powinna. Zastanawiam się czy jakiegoś rejestru źle nie ustawiłem, no ale sprawdzam to po któryś raz z rzędu, także raczej jestem pewny że rejestry mam ustawione w porządku. Zmiana trybu PSC też nie dała żadnego rezultatu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 mar 2014, o 21:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lis 2012
Posty: 283
Lokalizacja: Warszawa
Pomógł: 17

Hej,
Nie chcę się wymądrzać, bo jestem dopiero początkujący, ale Mirek jak mantrę powtarza - nie używać delay'ów w przerwaniach - a Ty w przerwaniach walisz po 85ms czekania...

_________________
Pozdrawiam
Grzegorz



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 7 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