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



Teraz jest 18 sty 2025, o 19:58


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
Autor Wiadomość
PostNapisane: 25 mar 2012, o 16:40 
Offline
Użytkownik

Dołączył(a): 18 lut 2012
Posty: 50
Pomógł: 0

Witam
W teorii udało mi się zaprogramować TIMER 1 mojego procesora tak aby cały port C był pod jego "wpływem" ale w praktyce program robi co mu się podoba(np. nagle z 0% impulsu przeskakuje na 80%) a reakcja na przyciski (jeżeli jest to) jest bardzo ale to bardo opóźniona. Oto kawałek mojego kodu, proszę o pomoc jak naprawić działanie tego programu bo już nie mam pomysłu co tam wstawić.
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: 25 mar 2012, o 18:24 
Offline
Użytkownik

Dołączył(a): 07 mar 2012
Posty: 54
Pomógł: 0

wydaje mi sie ze zle ustawiles bity do trybu CTC co wiecej w złych rejestrach



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2012, o 18:29 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27346
Lokalizacja: Szczecin
Pomógł: 1041

Ale poczekaj poczekaj bo rozpędziłeś się za mocno :(

o ile pierwsze 3 linijki konfiguracji timera1 rozumiem to dalej zaczyna się niestety "amba" :(

zezwalasz na przerwanie CompareMatch - a gdzie masz procedurę obsługi tego przerwania ??? Nie ma jej w kodzie zatem procek się wciąż resetuje - nic nie może ci działać z takim kodem

Poza tym co to są pwm1, 2 itd ??? sorki ale w ogóle nie wiem o co chodzi bo ten kod jakby wskazuje (tylko się domyślam tutaj) na PWM programowy a ty piszesz coś o sprzętowym

zatem jeśli to nie jest pełny kod - to nic a nic ja przynajmniej nie jestem w stanie pomóc czy podpowiedzieć dalej. A jeśli pełny no to masz odpowiedź dlaczego on w ogóle nie działa.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2012, o 18:29 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27346
Lokalizacja: Szczecin
Pomógł: 1041

wasu napisał(a):
wydaje mi sie ze zle ustawiles bity do trybu CTC co wiecej w złych rejestrach


Dobrze jest ustawiony WGM12 bo w m644P znajduje się on właśnie w tym rejestrze ;) nota PDF - nota ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2012, o 20:48 
Offline
Użytkownik

Dołączył(a): 18 lut 2012
Posty: 50
Pomógł: 0

przedstawiony kod to tylko wycinek, obsługa "pwm1 ..." jest opisana poza programem (według przykładu z płyty)
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: 25 mar 2012, o 21:51 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27346
Lokalizacja: Szczecin
Pomógł: 1041

Nie no posłuchaj - ale co to jest K_W() ? nie można tak po kawałku odsłaniać swojego kodu - to nie kalambury albo rebus. Tylko fragmentów, które są z DVD nie musisz wklejać bo je wszyscy mamy pod ręką

Poza tym napisz może co chcesz dokładnie uzyskać - bo nikt ci tu nie naprawi programu - tym bardziej jeśli podchodzisz do jego napisania całkiem od tyłu że tak powiem.

Tak czuję że nie masz tu żadnej obsługi drgań styków itp ....

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2012, o 22:26 
Offline
Użytkownik

Dołączył(a): 07 mar 2012
Posty: 54
Pomógł: 0

Mirku moglbys wskazać gdzie znajduje się ten rejestr Timera? Ja korzystam z Atmegi644P ale nie moge znalezc tego w nocie, tym bardziej ze Timer 1 jest 16 bitowy a nie 8



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2012, o 22:34 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8597
Pomógł: 337

zerknij od strony 132 noty

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2012, o 22:34 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27346
Lokalizacja: Szczecin
Pomógł: 1041

wasu napisał(a):
Mirku moglbys wskazać gdzie znajduje się ten rejestr Timera? Ja korzystam z Atmegi644P ale nie moge znalezc tego w nocie, tym bardziej ze Timer 1 jest 16 bitowy a nie 8


No ale jaki rejestr Timera1 tzn który ? bo przecież jest ich sporo - wystarczy zajrzeć do rozdziału o tym timerze i w nim na ostatni podrozdział o nazwie "Register description" przecież taki podrozdział masz w każdym rozdziale ;)

hmmm chodzi ci o rejestr licznika timera1 ???? jeśli tak to ten akurat w każdym procku będzie taki sam

TCNT1

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 mar 2012, o 16:34 
Offline
Użytkownik

Dołączył(a): 18 lut 2012
Posty: 50
Pomógł: 0

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

Chodzi o to że chociaż ten program robi(o ile można to tak nazwać) co do niego należy to reakcja na bodźce zewnętrzne (klawisze) jest bardzo toporna tz. że jak nacisnę klawisz to program kompletnie na niego nie raguje, dopiero po przytrzymaniu klawisza na ok 5s program postanawia zareagować. Co prowadzi do tego, że dopisywanie dodatkowych funkcji wydaje mi się na razie bez sensu bo i tak ich działanie tylko jeszcze bardziej spowolni proces wykonywania programu.
Dlatego się pytam jak temu zaradzić aby poza obsługą PWM na więcej niż dwóch sprzętowych kanałach dodać jakieś ciekawe możliwości programu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 mar 2012, o 19:34 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27346
Lokalizacja: Szczecin
Pomógł: 1041

Po pierwsze to mam nadzieję że pobrałeś aktualizację do kodów do LCD ???

ale teraz do meritum.

Program działa dokładnie tak jak go napisałeś. Powiedz czego ty się spodziewasz po takiej obsłudze klawiszy gdzie wstawiłeś czasy 80ms !!!! a wartości PWM zwiększasz/zmniejszasz o 1 !!!!! no weź sobie kalkulator w rękę i policz po jakim czasie uda ci się zwiększyć PWM od 0% do 100%

80ms * 256 = ok 20 SEKUND !!!

więc dziwisz się dlaczego reakcja na klawisze jest toporna ? hmmmm ?

Albo wstaw sobie mniejsze opóźnienia np 20ms i już będzie nieco lepiej

albo poczytaj najpierw dalej książkę jeszcze i zobacz jak się pisze programy i funkcje nieblokujące. Rozdział "Wstęp do programów czasu rzeczywistego" ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 mar 2012, o 15:51 
Offline
Użytkownik

Dołączył(a): 18 lut 2012
Posty: 50
Pomógł: 0

Problemem było danie złego TIMERA ponieważ kiedy ustawiłem TIMER0 program działa normalnie



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

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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO