在Xilinx Zynq上的中断C ++中,初始化和设置外部中断的值为零

时间:2016-05-20 20:56:26

标签: c++ xilinx zynq

我遇到了一个相当奇怪的问题,我的代码中有一个我在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;

    }

}

0 个答案:

没有答案