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



Teraz jest 27 mar 2026, o 15:08


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 10 lut 2014, o 10:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

Postanowiłem sobie zrobić jakieś tam migadełko w przerwaniach (wywoływanie co 100us - wiem dość gęsto, ale dla timera będzie mi to potrzebne) i gdy próbuję go skompilować to mam wrażenie, że Eclipse się na mnie obraził. Sprawa wygląda tak:

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 .lss mam natomiast coś takiego po kompilacji:

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


Śmiech na sali... zmarnowałem już kilka godzin na szukanie przyczyny, kombinowałem z innymi algorytmami (switch-case) i nic.

Przy kompilacji żadnych warningów, wszystko niby prawidłowo i pewnie szukał bym gdzieś głębiej przyczyny gdyby nie to, że gdy korzystam z samego timera czyli:

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


to plik .lss zawiera:

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


i timer oczywiście działa prawidłowo w pętli głównej.

Czy może ktoś mi sensownie wytłumaczyć dlaczego eclipse obraził się na moje migadełko i za nic w świecie nie chce go prawidłowo skompilować? Jeszcze raz mówię - żadnych warningów, ostrzeżeń, błędów - eclipse grzecznie mówi że wszystko ok - i to mnie w nim zaczęło przerażać. Czuję się jakby kompilator przejął rolę polityka, który to lepiej wie co mi jest potrzebne do szczęścia...

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2014, o 10:55 
Offline
Użytkownik

Dołączył(a): 05 lut 2013
Posty: 302
Pomógł: 19

Bo za duzo robisz w przerwaniu i Ci zoptymalizowal ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2014, o 11:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

No bez przesady, zdziwił byś się ile miałem kodu w przerwaniach w takim samym czasie zegarowym w Bascom'ie i wszystko hulało, a tu ledwo parę linijek...

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2014, o 11:01 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

Kompilator dokonal optymalizacji i wyciął wszystko to co jest niepotrzebne, czyli to co się nigdy nie wykona. W tej chwili, z calej procedury wykona sie zawsze tylko linia 20 i 25. Dlaczego? Bo przy kazdym wywolaniu procedury zmienne stan_imp i opu będą tworzone na nowo i inicjalizowane zerem. Nigdy nie beda mialy szansy otrzymac innej wartosci. Jesli chcesz zeby zmienne przechowywaly wartosc miedzy wywolywaniami to musisz je zdefiniowac jako statyczne albo jako globalne


Autor postu otrzymał pochwałę

_________________
+++++[>++++<-]>[>++++++<-]>.---------.+++.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2014, o 11:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

@xor -> No cholera tak czułem, że coś z tymi zmiennymi będzie nie tak, ale do głowy mi nie przyszło, że to mają być static, a już na pewno, że kompilator to wytnie z tego powodu :lol: - za mało doświadczenia jeszcze z C mam :)
Dzięki wielkie! Wędruje oczywiście "klik" ;)

_________________
http://www.sylwekkuna.com



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


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