C/C++ a interrupt-jak se dostat k prom., s platností v bloku

ahojte,
pokud je vyvoláná funkce přerušení od periférie, nachází se vlastně program v novém “vlákně” a jsou dostupné jen globální proměnné (proměnné s globální platností). Je možné se nějakým způsobem dostat k proměnné (objektu), která má platnost v bloku (např. v bloku main).
Visual studio propojení mezi vlákny řeší např. delegátem. Nenapadá vás něco?
díky

:arrow_right: administrator: přejmenováno z "C/C++ a interrupt"

Mozno som to dobre nepochopil, ale k internej premennej sa predsa nedostanes ani z inej funkcie, nemusi sa predsa jednat len o funkciu z prerusenia.
K rieseniu tejto situacie predsa normalne sluzi zapuzdrenie premennych a nie inak je tomu i pri funkciach volenych z prerusenia.

Okrem toho, ak pouzivas viac modulov *.c v ramci jedneho projektu, tak ako kazda funkcia vidi globalne premenne v ramci modulu *.c v ktorom je definovana, tak vidia tieto premenne i funkcie volane z prerusenia. V nejakom *.c predsa musia byt definovane. No a ak das pred tieto globalne premenne slovo static, potom uz nie su viditelne v inych moduloch.

Medzi modulmi si mozes vzajomne neviditelne premenne modifikovat pomocou zapuzdrenia. Bezne to tak robim, i pri funkciach z prerusenia.

Ale ak som otazku spravne nepochopil, tak sorry. :slight_smile: