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



Teraz jest 23 cze 2026, o 14:34


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 15 mar 2017, o 23:59 
Offline
Nowy

Dołączył(a): 19 paź 2016
Posty: 3
Pomógł: 0

Witam piszę prosty program do większego projektu funkcja mikrokontrolera ma się sprowadzać do generowania 4 sygnałów prostokątnych PWM o częstotliwości 1kHz.
Których szerokość zmienia się wybierając odpowiedni kanał przy pomocy przycisku i inkrementując lub dekrementując rejestry OCR liczników w zalezności od kierunku obrotu enkodera.
na liczniku T0, 8 bitowy zakres(256 róznych szerokości), natomiast na T1, 10 bitowy(1024 różne szerokości). Czy mógłby ktoś rzucić okiem na kod i sprawdzić czy jestem na dobrej drodze bo niby działa ale nie zawsze chwilowo mam możliwość sprawdzenia tego tylko na diodzie LED.

Składnia: [ Pobierz ] [ Ukryj ]
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: 21 mar 2017, o 00:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Witam,
Widzę że od jakiegoś czasu nikt nie podpowiedział, to może ja podniosę temat. :roll:
hwcn napisał(a):
Czy mógłby ktoś rzucić okiem na kod i sprawdzić czy jestem na dobrej drodze bo niby działa ale nie zawsze

Przejrzałem trochę i zastanawia mnie czy nie jest problemem zmienna encoder. ?
Jest wykorzystana w funkcjach,
ale co się stanie w trakcie jej wykonywania kiedy nastąpi przerwanie i ją zmieni, ?
i ze zmienioną wartością enkoder powróci do dalszego działania w funkcji. ?
Może to tu leży problem. :?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 mar 2017, o 14:07 
Offline
Nowy

Dołączył(a): 19 paź 2016
Posty: 3
Pomógł: 0

Dziekuje za odpowiedź czy rozwiązaniem mogłoby być zerowanie zmiennej encoder przy każdym wywołaniu przerwania?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 mar 2017, o 16:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

  Nie bawiłem się jeszcze enkoderem :roll: , ale wypatrzyłem jeszcze taką dziwną zależność.   :?
hwcn napisał(a):
Składnia: [ Pobierz ] [ Ukryj ]
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: 21 mar 2017, o 17:07 
Offline
Nowy

Dołączył(a): 19 paź 2016
Posty: 3
Pomógł: 0

wiem wiem już się tego pozbyłem sam, aktualnie z każdą wersję kodu nawet bez tych funkcji, wartość rejestrów tylko można zwiększać więc moge sobie od 0 do 255 zmienić szerokość ale już w dół nie idzie.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

#edit najprostsza możliwa konfiguracja bez zbędnych ozdobników również nie działa.
#edit2 dziekuje za pomoc problem rożwiązany źle ustawiłem wywoływanie przerwania INT0 było na rising a powinno być any logical change



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 mar 2017, o 23:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Czyli wygląda na to że "enkoder" nie bywa mniejszy od 0. :?

hwcn napisał(a):
EICRA |= (1<<ISC01)|(1<<ISC00); //rising przerwanie na int0

Narastające zbocze na int0 powoduje przerwanie - czyli w przerwaniu będzie zawsze stan wysoki na DDD2. .hmm..
hwcn napisał(a):
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Może warto przemyśleć. :roll: (albo ja nie jarzę zamysłu :mrgreen: ) hmm.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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