树莓派pico C开发点滴(一)

简单说下IO中断处理例程。

所有的IO共享一个中断,如果不同的IO使用的中断处理例程不同,可以增加多个event_callback,构成处理链。中断发生时会调用处理链上的所有中断服务例程。

但同一个event_callback是不能通过gpio_add_raw_irq_handler往处理链中添加多次,我做的一个不严格的测试,添加超过4次就会报错。根据测试,添加3次不会报错,但没意义。具体该怎么分析3次、4次,目前不太清楚。

用gpio_add_raw_irq_handler添加中断处理例程时,参数中有端口号,但是似乎没什么用。比如输入口1,2,3,输入口4,5,6,他们分别对应的event_callback是e_c_1和e_c_2,则以下写法是可以的:

gpio_add_raw_irq_handler(1,&e_c_1);

gpio_add_raw_irq_handler(1,&e_c_1);

重点是:在e_c_1和e_c_2中要判断中断是在哪个端口上触发的,e_c_1中只需要把输入口1,2,3上的中断过滤出来,e_c_2同理,否则全都混到一起了。

这个可以参考

Experiments with new gpio_add_raw_irq_handler - Raspberry Pi Forums

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值