[bascom] wspoldzielona zmienna w przerwaniach

Apr 22, 2010 1 Replies

Witam Jak to jest w bascom avr ze wspoldzielon± zmienna np. integer?



Zakladam ze w procedurze obsugi przerwania przypisuje zmiennej typu integer (2 bajty) nowa wartosc. W funkcji glownej natomiast dokonuje porownania tej zmennej za pomoc± instrukcji if ...then. Czy przed tym porownaniem musze sam zadbac o wylaczenie przerwan aby nie spowodowac blednego wyniku porownania?



Jak to wlasciwie jest w bascomie ze zmiennym, czy jest jakas instrukcja lub definicja zmiennej ktory jest odpowiednikiem volatile w jezyku C? Jak wymusic na zmiennej aby pobra³a wartosc zmiennej z pamieci SRAM a nie korzysta³a z wartosci umieszczonych w rejestrach? Moglby ktos to wyjasnic jak Bascom sobie z tym radzi? Dziekuje za pomoc


__________ Informacja programu ESET NOD32 Antivirus, wersja bazy sygnatur wirusow 5050 (20100422) __________



Wiadomosc zostala sprawdzona przez program ESET NOD32 Antivirus.



formatting link
lub
formatting link


U¿ytkownik "roxy" snipped-for-privacy@o2.pl napisa³ w wiadomo¶ci news:hqpoul$qfg$ snipped-for-privacy@news.onet.pl...

Mogê ci powiedzieæ jak to siê robi w assemblerze i C. Otó¿ nigdy nie jeste¶ pewien momentu w którym przerwanie bêdzie wywo³ane. Je¶li zmienna jest 16 bitowa, to realna jest sytuacja, ¿e np. pierwszy bajt odczytany bêdzie przed obs³ug± przerwania, a drugi po. Tak wiêc je¶li operacja krytyczna jest wykonywana w wiêcej ni¿ jednej instrukcji kodu maszynowego (wiem - w bascomie ciê¿ko to oceniæ), to zawsze na czas wykonywania takiego fragmentu kodu nale¿y wy³±czyæ obs³ugê przerwañ.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required