@000001ED: ?EPILOGUE_B0_L09
+000001ED: E0F0 LDI R31,0x00 Load immediate
+000001EE: B60F IN R0,0x3F In from I/O location
+000001EF: 94F8 CLI Global Interrupt Disable
+000001F0: 0FCE ADD R28,R30 Add without carry
+000001F1: 1FDF ADC R29,R31 Add with carry
+000001F2: BE0F OUT 0x3F,R0 Out to I/O location
+000001F3: 9508 RET Subroutine return
Есть функция:
void TaskA(void){
char t;
t = DIInput();
};
Функция, которая вызывает TaskA:
void CallTask(void){ Работает
TaskA();
};
void CallTask(void){ А так не работает!
void (*pf)(void);
pf = TaskA;
pf ();
};
При вызове функции по указателю на функцию, происходит переполнение стека Stack Underflow at 0x01f3, не могу понять почему.