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



Teraz jest 28 mar 2024, o 14:20


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
Autor Wiadomość
PostNapisane: 22 sie 2017, o 11:07 
Offline
Nowy

Dołączył(a): 18 kwi 2014
Posty: 24
Pomógł: 0

Witam.
Piszę dość obszerny projekt.
Zaglądając do pliku .lss zobaczyłem, że kompilator w funkcji (dość rozbudowanej --- zagnieżdżenie pętli na trzech poziomach) zaczyna wyłączać przerwania pomimo, że w kodzie języka C nigdzie tego nie robię.

Najbardziej interesuje mnie co robią pogrubione w kodzie instrukcje i czemu tak a nie inaczej zabawia się kompilator.

Pytanie jest o tyle ważne, bo w projekcie używam tej funkcji często tak jak i wielu przerwań.
Nie chciałbym aby wywołanie tej funkcji powodowało rozjeżdżanie się czasów w programie.

Zamieszczam w/w kod.

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

Konrad Kochan (Konradev2)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sie 2017, o 12:01 
Offline
Nowy

Dołączył(a): 18 kwi 2014
Posty: 24
Pomógł: 0

Używam ATmega16A 16MHz.

Kompilator w jakimś tam celu zapisuje coś do tego rejestru SP.

Mam rozumieć, że przerwania są wyłączone przez całe ciało funkcji? Czy z tych linii da się wywnioskować, że przerwania wyłącza się tylko na czas zapisu?

Przedstawiłem tylko początek i koniec funkcji.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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