Hallo,
ich möchte in einer ISR unter berstimmten Bedingungen einen Pin ein/ausschalten. Der Code der ISR würde in Etwa so aussehen, wobei SetBit ein einfaches Makro ist:
Code:
if (ON)
{
if (EnableBit0)
SetBit(PortX,0);
if (EnableBit1)
SetBit(PortX,1);
if (EnableBit2)
SetBit(PortX,2);
.....
}
else
{
if (EnableBit0)
ClearBit(PortX,0);
if (EnableBit1)
ClearBit(PortX,1);
if (EnableBit2)
ClearBit(PortX,2);
.....
}
Welche Register muss ich nun in der ISR sichern, oder erkennt das gar der GCC selbst und sichert nur das was notwendig ist? Ich mache mir die Gedanken deshalb, weil die ISR bis zu ~15.000 mal pro Sekunde aufgerufen werden kann.
Lesezeichen