0

私は現在、プロジェクトに取り組んでいます。コンピューター上のプログラムから、シリアル経由で接続された核 F303RE マイクロコントローラーを持つラズベリー PI に UDP メッセージを送信しています。マイクロコントローラには、1 つのセンサーと 1 つの LED が接続されています。センサー電圧が特定の値を下回ると、LED が点灯します。プログラムから UDP メッセージをラズベリー PI に送信し、ラズベリー PI はそれをシリアル ポートとマイクロコントローラーに転送します。プログラムでトリガー値「d」を設定すると、一度だけ機能します。初めて設定した後、再度設定することはできません。私は一日中探し回っていますが、解決策は見つかりませんでした。ここに誰かアイデアがありますか?

#include "mbed.h" 
DigitalOut Vcc(PA_0);
AnalogIn aInnA1(PA_1);
DigitalOut Gnd(PA_4);
DigitalOut myled(PA_6);

static float voltage1=0.0f;


void utspenning() 
{
float voltage1 = aInnA1*3.3f;  
printf("$VOLTAGE,A1,%.2f\r\n" ); // This sends value back to the program
}

int main()
{
Vcc=1; Gnd=0;
char e [9];

while(1)
 {   
 scanf("%[^\r\n]s",e); // Reads my input from the program
 float d = atof(e);

    if (voltage1 > d ) 
        {
                    myled = 1;
        }
    if (voltage1 < d ) //  
             {
                myled = 1;
                wait(0.1);
                myled = 0;
                wait(0.1); 
            }
}}
4

1 に答える 1

-1

このマイクロや開発中の環境には詳しくありませんが、Voltage1 を volatile と宣言する必要があるのではないかと思います。

于 2016-11-08T15:29:58.310 に答える