0
私はarduinoが新しく、マルチスレッドプログラミングをしたいと思っています。 私はいくつかのコードを書きましたが、変数tempsPoseを更新するには次のコードが必要でしたが、動作しません(Ledは常に同じ速度で点滅します)。arduinoスレッドの揮発性変数の変更
この変数は
はあなたの助け
#include <Thread.h>
Thread myThread = Thread();
int ledPin = 13;
volatile int tempsPose ;
void blinkLed13()
{
\\i would like the value of 'tempspose' to be updated
\\ when the value of the variable changes in the blinkLed13 function
while(1){
digitalWrite(ledPin, HIGH);
delay(tempsPose);
digitalWrite(ledPin, LOW);
delay(tempsPose);
}
}
void setup() {
tempsPose = 100;
pinMode(13,OUTPUT);
Serial.begin(9600);
myThread.onRun(blinkLed13);
if(myThread.shouldRun())
myThread.run();
}
void loop() {
for(int j=0; j<100; j++){
delay(200);
\\some code which change the value of 'tempsPose'
\\this code is pseudo code
tempsPose = tempsPose + 1000;
}
}
は、LED 13がblinkinkを(停止しませんが(1)関数で)しかし、遅延は時間とともに変化しません – user3052784
これは決して 'blinkLed13'を残さなかったからです。その遅延を変更するために決して 'loop'に入ることはありません。これらの変更された値をシリアルに印刷するだけです。 'setup'関数と' myThread.run() 'にはまっているので、何もありません。 – KIIV
あなたのコメントありがとうございますが、あなたが書いたことは本当に分かりません。私にいくつかのコードを教えてもらえますか? – user3052784