RP2040的PIO编程与中断机制详解
1. PIO编程基础
在进行PIO(可编程输入输出)编程时,首先要进行项目的配置。以下是相关代码示例:
target_sources(pio_blink PRIVATE blink.c)
target_link_libraries(pio_blink PRIVATE pico_stdlib hardware_pio)
pico_add_extra_outputs(pio_blink)
调用SDK函数控制PIO的C代码是标准的,可从SDK包含的各种PIO示例中获取。接下来,我们详细了解各个PIO指令。
2. PIO指令详解
2.1 JMP指令
PIO没有程序状态寄存器,跳转条件基于PIO中的各种操作。JMP指令有多种形式:
| 指令形式 | 说明 |
| ---- | ---- |
| JMP label | 无条件分支 |
| JMP !X label | 若X非零则跳转 |
| JMP X—label | 若X非零,递减X并跳转 |
| JMP !Y label | 若Y非零则跳转 |
| JMP Y—label | 若Y非零,递减Y并跳转 |
| JMP X!=Y label | 若X不等于Y则跳转 |
| JMP pin label | 若引脚为1则跳转 |
| JMP !OSRE label | 若OSR的位数小于配置阈值则跳转 |
需要注意的是,pin和!OSRE版本的跳转需要
超级会员免费看
订阅专栏 解锁全文
2752

被折叠的 条评论
为什么被折叠?



