PIO学习

Posted zhongguo135

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
打开存在该寄存器。

 

以上是关于PIO学习的主要内容,如果未能解决你的问题,请参考以下文章

SAM 上的 Atmel ASF - pio_configure_pin 描述错误?

MicroPython RP2040可编程IOs(PIO)示例介绍

优化算法鸽群优化算法(PIO)含Matlab源码 1077期

python pio_extra_script.py

合宙ESP32C3基于VSCode PIO Arduino开发框架初探教程

VSCode PIO创建工程失败分析和解决办法