// funktionsprototyper för assemblerfunktioner i avbrott.s12 void cli(); void irq_fkt(void); void init(); // funktionspekartyp (inga argument och ingen retur) typedef void (*fp) (void); // volatile viktigt om vi slår på optimeringar volatile int x; // följande funktion ska anropas vid avbrott (anrop från assemblerkod) void minCIrqFkt() { x = 0; } void main (){ x = 0; // Initiera avbrottsvektorn (alternativ 1) init(); // Initiera avbrottsvektorn (alternativ 2) // (på övningen sattes en asterisk fel) *((fp*)0x3ff2) = irq_fkt; // Initiera avbrottsvektorn (alternativ 3) // (kompilerar fast med varning) *((unsigned int*)0x3ff2) = irq_fkt; // nollställ I-flaggan (CCR) cli(); while(1) x++; }