1

まず私の PIC は 16f1625 で、プログラミングには MPLAB 8.86 を使用します。私の問題は単純です。私は PC と PIC の間で通信を行っています。PC は 1 バイトを送信し、PIC はこのバイトを読み取り、何かを行います。私の問題は、このようにこれを改善したいということです.PCは「R」のような1文字を送信し、その後、設定したい番号を送信します。今日、私は4つの可能性しかありません。PCは0、1、2、または5を送信し、これらに従って解像度を設定します。

switch(i)    {
    case 1:
        pulsesPerMm = 10;
        break;
    case 2:
        pulsesPerMm = 20;
        break;
    case 5:
        pulsesPerMm = 51;
        break;
    case 10:
        pulsesPerMm = 102;

        break;
}

次のようなコマンドを受け取ります。

while(!RCIF)    /* set when register is not empty */
    continue;
return RCREG;   

今、私はこのようなことをしたい: 次の単語が解像度になることを示す "R" を受け取り、その後、2 バイトが新しい解像度になり、文字列を int に変換するだけです ( atoi) を使用してから、pullesPerMm を設定できます。問題は、1 文字しか必要としない他のコマンドがあるため、これらを変更したくないことです。

4

1 に答える 1

0

数字の代わりに rx chars をオンにし、'R' ケース ブロックのみで getChar() 関数を呼び出して次の 2 つの文字を返し、それらを atoi() します。

于 2013-02-05T19:35:50.953 に答える