Witam Jak w gcc pozbyć się prologu i epilogu w obsłudze przerwania ?
************* 73:koderrc.c **** SIGNAL(SIG_OUTPUT_COMPARE1A) 170 .LM19: 171 /* prologue: frame size=0 */ 172 0064 1F92 push __zero_reg__ 173 0066 0F92 push __tmp_reg__ 174 0068 0FB6 in __tmp_reg__,__SREG__ 175 006a 0F92 push __tmp_reg__ 176 006c 1124 clr __zero_reg__ 177 /* prologue end (size=5) */ 74:koderrc.c **** cbi(PORTB, PB3); 179 .LM20: 180 006e C398 cbi 56-0x20,3 75:koderrc.c **** } 182 .LM21: 183 /* epilogue: frame size=0 */ 184 0070 0F90 pop __tmp_reg__ 185 0072 0FBE out __SREG__,__tmp_reg__ 186 0074 0F90 pop __tmp_reg__ 187 0076 1F90 pop __zero_reg__ 188 0078 1895 reti *******************w sumie wystarczyłoby 180 006e C398 cbi 56-0x20,3 188 0078 1895 reti
a zależy mi na jak najszybszym wykasowaniu tego bitu po przyjściu przerwania. Możeby jakąś wstawkę assemblerową zrobić, tylko nie wiem jak to wkleić w obsugę przerwania.
Pozdrawiam Grzegorz Kurczyk