0

このコードが機能しないのはなぜですか?私が欲しいのは、ボタンを押したときにportbを切り替えることだけです。

main
trisb=0
trisa=0xff
while true
if ra0<>0 then
portb = not portb
end if
wend .end
4

1 に答える 1

0

それが何かはわかりません。それは疑似コードですか?

とにかく、RA0 == 0 から RA0 == 1 への変更でトリガーする必要があります。書かれているように、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;
            }
         }
     }
}

実際のアプリでは、スイッチ入力をデバウンスする必要があることに注意してください (変更イベントをトリガーする前に、いくつかのサンプルで安定していることを確認してください。

于 2012-05-09T16:16:07.763 に答える