/ / Prerušenia v AT89S52 pomocou C kódu [zatvorené] - c, vložené, isr

Prerušuje sa v AT89S52 pomocou kódu C [closed] - c, embedded, isr

Môžem volať funkciu mimo ISR, zvnútra ISR, ktorá je volaná inou funkciou (napr. Z MAIN) v AT89S52 pomocou C?

odpovede:

1 pre odpoveď č. 1

Volanie funkcie z ISR v akejkoľvek architektúre je legálne - aj keď nie vždy vhodné.

Musíte zvážiť, či funkcia votázka je vhodná na vykonanie v prerušeniach a viacnásobných kontextoch vlákien; napríklad bude musieť byť reentrantný a musí pristupovať k zdieľaným zdrojom atómovo alebo spôsobom, ktorý zabezpečí konzistenciu, a nemal by samozrejme blokovať alebo zaneprázdnene čakať.

Možno bude potrebné zvážiť aj požiadavku na zásobník pre volanie funkcie a volanie funkcie nad hlavou v zmysle času spracovania prerušenia. Možno uvažovať o vložení funkcie.