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
打开存在该寄存器。