我正在使用 WinCE 7 Visual Studio 2008 并为 ALS ( MAX44009 ) 编写驱动程序代码。我编写了以下代码来读取中断状态寄存器并在发生中断时显示消息。但是,它只随机工作几次。例如,当我用手关闭传感器时,我只收到几次消息,然后,data==1
即使它必须中断并继续循环,它也不会进入状态。阈值计时器为 0。该AlsRegRead
函数执行 I2CRead。pAlsDrvInfo
是驱动程序上下文。ADD_ALS_INT_STATUS
是0
。DumpAlsRegistry
函数将打印除 register 之外的所有寄存器的内容0x0
。
while(1)
{
AlsRegRead(pAlsDrvInfo, ADD_ALS_INT_STATUS, &data, sizeof(UINT8));
if (data == 1)
{
DumpAlsRegistry(pAlsDrvInfo);
RETAILMSG(1,(L"Interrupt Received...\r\n"));
}
}
请指导我在哪里犯错。