Я новичок в arduino, и я хочу делать многопоточное программирование. Я написал код, и мне нужен следующий код для обновления переменной tempsPose, но он не работает (светодиод всегда мигает с той же скоростью).arduino thread update volatile variable
Как я могу изменить следующий код, чтобы обновить переменную «tempsPose» в функции blinkled13, когда эта переменная mofified в функции петли
Большое спасибо за вашу помощь
#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;
}
}
С учетом указанных выше кода, светодиод 13 не останавливается blinkink (в то время как (1) в функции), но задержка не изменяется со временем – user3052784
Это потому, что он никогда не оставил 'blinkLed13'. Он никогда не попадает в «цикл», чтобы изменить эту задержку. Просто напечатайте эти измененные значения в Serial. Не будет ничего, потому что он застрял в функции 'setup' и' myThread.run() ' – KIIV
Спасибо за ваш комментарий, но я не совсем понимаю, что вы написали. Не могли бы вы показать мне какой-то код. – user3052784