我遇到了一个相当奇怪的问题,我的代码中有一个我在main中初始化的值。一旦我尝试在中断内调用该变量,它就是0.我在这里缺少什么?在中断中是否存在不同的变量?
我想指出,这是一个关于中断的理论问题,以及我是否无法在空闲和中断之间共享值。
Supervisor supervisor;
XScuTimer TimerInstance;
XScuGic IntcInstance;
uint32_t offset;
void interruptRoutine(void *CallBackRef) {
// Define pointer to timer
XScuTimer *TimerInstancePtr = (XScuTimer *) CallBackRef;
// If timer is expired, clear interrupt status
if (XScuTimer_IsExpired(TimerInstancePtr)) {
XScuTimer_ClearInterruptStatus(TimerInstancePtr);
// Why is offset 0 within the interrupt routine?
xil_printf("Interrupt: %u\n", offset);
}
}
//.. I omitted the interrupt init method ..//
int main() {
while (true) {
// Get all sensor data
offset = 1;
}
}