@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, не могу понять почему.
|