关于内核中断的问题
习惯就好zz 嵌入式领域新星创作者 2018-09-11 11:06:31 我目前在学习linux的外部中断:
注册中断
int request_irq(unsigned int irq, irq_handler_t handler,unsigned long irqflags, const char *devname, void *dev_id)
然后释放
free_irq
我想问的是,request_irq中的参数irqflags有类似IRQ_TYPE_EDGE_RISING、IRQ_TYPE_EDGE_FALLING、IRQ_TYPE_EDGE_BOTH、IRQ_TYPE_LEVEL_HIGH
这些触发条件都触发handler函数,它们有什么不同?
比如:IRQ_TYPE_EDGE_RISING、IRQ_TYPE_EDGE_FALLING是上升下降沿触发,但是如果IRQ_TYPE_EDGE_BOTH的话是上升下降都触发同一个函数吗?
像IRQ_TYPE_LEVEL_HIGH这种又是如何触发处理函数的呢?实际试了一下,会产生很多次中断。
最后,我想用外部中断计算高电平时间,不知道怎么操作比较好