Microchip
直播中

张璨

8年用户 204经验值
私信 关注
[问答]

怎么切换输出端口引脚RB12?

(嗨。对不起,如果我的问题的答案存在于某处。我找不到或过滤出我的具体情况或问题)我很困惑!我想切换输出端口引脚RB12(它被配置为TrISB输出)。通过MPLAB-X程序通过调试器(优化0)PIC24F32 KA304电路。好比调试过3行后,调试器竟然“跳过”了3行,而PARTA12仍然读了0(低)…更糟糕的是,引脚RB12的DVM测量读数为1(高),而调试监视窗口读数为0(低)。有什么想法/帮助吗?谢谢您!

回帖(3)

李维嘉

2020-3-9 10:17:39
在每个C语句之间放置几个NOP。调试器有一个恼人的租用权来跳过指令或两次。您可以在调试器的版本注释中读取跳过。
举报

王焕树

2020-3-9 10:31:17
在猜测中,您已经将管脚留在模拟模式下,所以它总是读取为零。您需要清除ANSB12才能通过PORTB读取管脚。
举报

李牧喜

2020-3-9 10:47:57
谢谢你们“博斯克和@ QHB”!你们的解决方案都解决了!(对于本帖的其他读者,以上两个帖子都应该用作解决方案)//**************************************************************************来自PICKit 3发布注释:“断点行为和滑动:断点停止可能显示程序内存打滑,因为execut会打滑。”离子在到达断点后停止N指令。提供并参考以下定义:一个滑行-在执行指令之后出现断点(PC+2)两个滑行-在NEXT指令(PC+4)断点行为之后出现断点:如果非程序流、修改、单字、双周期指令(如表或循环指令)。PSV)在断点指令之前,然后断点出现在断点地址的指令被执行之前(一个SKID)。所有其他指令都有“两个SKID”,这意味着断点发生在执行NEXT指令之后。T“,这似乎是@博斯克指的是什么地方(他的NoP的增量PC…PC+X)非常棒的叫“博斯克”!...asm("NOP");//在XC16编译器//************************************************************Per@qhb的洞察力中,PIC24F32KA304数据表读取(如图所示):“...当读取PORT寄存器[这里,PORTB]时,将[由ANSB设置]为模拟输入通道的所有引脚将读取为已清除的(低级别)。”事实上,ANSB的重置行为是将ANSB设置为模拟输入…所以这就是正在发生的事情。所以清除ANSB12(=0)使我的端口读数反映在数字输出锁存器LATB12中正在设置的内容。谢谢@qhb//**************************************Noooooow...为什么我的程序不运行?疯狂:
举报

更多回帖

发帖
×
20
完善资料,
赚取积分