我正在为 GPIO 驱动程序提供的功能编写Python 扩展。我在 set_bit() 和 clear_bit() 等简单函数上取得了相当大的进展。但是现在我需要实现 wait_int(),它会一直休眠,直到在输入引脚上感应到一个事件,我不确定在 c 和 python 之间编排它的正确方法。这是在 c 中使用该函数的精简示例:
main(int argc, char *argv[])
{
int c;
//some setup like testing port availability, clearing interrupts, etc
...
while(1)
{
printf("**\n");
c = wait_int(1);//sleeps until an interrupt occurs on chip 1
if(c > 0) {
printf("Event sense occured on Chip 1 bit %d\n",c);
++event_count;
}
else
break;
}
printf("Event count = %05d\r",event_count);
printf("\nExiting Now\n");
}
我是否只是直接暴露 wait_int ,然后执行无限循环的 python 等效习语?还有一些需要做的去抖动。我已经在 c 中完成了它,但也许它可以移动到 python 端。