PIO学习

边沿捕获

   PIO可以对输入进行边沿捕获,它可以捕获上升沿、下降沿和双沿,当检测到边沿时PIO会把它存在edgecapture 寄存器之内;

  打开Synchronously capture 时,会生成一个边沿捕获寄存器,edgecapture ,

Enable bit-clearing for edge capture register 打开之后,可以清除单独位的沿捕获寄存器,清除给定的位时,要向相应的捕获寄存器写入1;

如果Enable bit-clearing for edge capture register 关闭,向edgecaputre写入任何值都会清楚所有寄存器中所有位,否则写入1到指定的位只

清除该位。

IRQ生成

打开Generate IRQ 选项之后生成interruptmask 寄存器,关闭时则不存在;

中断mask决定那个输入端口可以触发中断。interruptmask 寄存器来控制。

Level-sensitive :检测到高电平时触发中断,所以如果输入为低电平,可以在输入端加个非门。

Edge-sensitive :当edgecapture寄存器中的指定位为高时,PIO IP生成中断;

所以可以说,电平中断应该是检测输入寄存器,边沿中断检测的是edgecapture寄存器。edgecapture的值是不能自动清除的,需要清除,所以触发中断后要清除该位。

direction Register :该寄存器只存在于双向口。

interruptmask Register :设置相应的PIO输入,打开或者关闭相应位的中断;复位之后寄存器为0,关闭所有中断。

outset and outclear Register :Enable individual bit set/clear output register
打开存在该寄存器。

原文地址:https://www.cnblogs.com/zhongguo135/p/9484084.html