为什么这段代码不起作用?当我按下按钮时,我想要的只是portb切换。
main
trisb=0
trisa=0xff
while true
if ra0<>0 then
portb = not portb
end if
wend .end
答案 0 :(得分:0)
我不确定那是什么;它是伪代码吗?
无论如何,你需要触发从RA0 == 0到RA0 == 1的CHANGE。如上所述,只要RA0 == 1,那么你的PORTB将在每次循环时切换。
这是C中的一个例子:
int main(void)
{
unsigned char bButtonValue = 0;
TRISA = 0xFF;
TRISB = 0x00;
while (1)
{
if (RA0 != bButtonValue)
{
bButtonValue = RA0;
if (bButtonValue == 1)
{
PORTB= ~PORTB;
}
}
}
}
请记住,对于真正的应用,您可能需要对开关输入进行去抖(在触发更改事件之前确保它对于一些样本是稳定的。