【发布时间】:2019-05-06 12:03:20
【问题描述】:
我试图在 PIC 接收字符时(按下按钮时)保持 LED 亮起,默认情况下 LED 处于关闭状态,但我似乎找不到解决方案。
我用 MPLABX IDE 使用微控制器(特别是 PIC)编码学习了 3 个月,并开始了解 UART 通信。起初我尝试在收到字符时打开/关闭 LED,效果很好并且工作正常,但现在我试图在按下按钮时保持 LED 处于活动状态,但无法真正克服这个问题。我的代码在这样的中断函数中:
//#define LED RB5
void __interrupt () ISR (void)
{
if(RCIF) // data is received
{
data = RCREG; // get the value
if (data == '1') // if value received is '1'
LED = 1; //turn ON led
RCIF = 0;
}
LED = 0; // turn OFF led
}
使用上面的代码可以让 LED 在我按住按钮时非常快速地打开/关闭,这并不是我真正想要的。
我希望有人能帮助我了解我需要做什么。谢谢!
【问题讨论】:
-
因为“橡皮鸭调试”的简短会话应该会引导您找到问题的原因。
-
您需要添加一个
else。 -
根据我正在查看的数据表,
RCIF位是只读的。