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



Teraz jest 28 lut 2025, o 22:08


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 13 gru 2014, o 14:09 
Offline
Nowy

Dołączył(a): 15 paź 2014
Posty: 5
Pomógł: 0

Witam podczas robienia sterownika PID na Atmega8 (kod od atmela) natrafiłem na pewien problem który się pojawił jest to problem z przerwaniami. Nie potrafię zlokalizować błędu przez który program nie chce iść dalej.

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


W pliku ściągniętym z oryginalnym algorytmem jest coś takiego, ale wiadomo, że należy to przerobić na odpowiedni AVR w moim przypadku Atmege8.

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


Czy ktoś potrafi mi powiedzieć co jest nie tak z moim kodem ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 gru 2014, o 15:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
Co prawda nie o przerwaniu mowa, ale to:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

jest problematyczne.

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 gru 2014, o 16:01 
Offline
Nowy

Dołączył(a): 15 paź 2014
Posty: 5
Pomógł: 0

Z tym że ADC działa więc chyba nie w tym problem



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sty 2015, o 18:10 
Offline
Nowy

Dołączył(a): 15 paź 2014
Posty: 5
Pomógł: 0

Po usunięciu tego problemowego przerwania, algorytm działa ale jak się domyślam przynajmniej część proporcjonalna gdyż człony całkujące potrzebują czasu ( całkowanie po czasie ) o ile się nie mylę. Co jest nie tak z tym przerwaniem. Czy ktoś pomoże zrozumieć zasadę działania tego przerwania?
W obsłudze tego przerwania jest ustawiana flaga gFlags.pidTimer = TRUE; która w funkcji main występuje w warunku do wykonania podprogramu regulacji, i co się w tedy dzieje timer zlicza dalej ( według zasady tak ?) a co jeśli funkcja pid_controller trwa dłużej?, czy moje rozumowanie idzie w złym kierunku i timer ponownie się uruchamia po wyzerowaniu tej flagi w funkcji main ??



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