我想知道您对我如何编写 QThread 的看法。
我的这部分代码用于处理 LED 显示屏的 PWM。
我的 QThread 的目的是在更改 QThread 中的值时尽可能顺利地工作,否则我可以在 LED 显示屏上看到值更改期间非常快的中断,例如当我使用 QMutex 时。
这就是我选择使用 SIGNAL / SLOT 方式的原因 当我需要根据时间或电阻值改变亮度时,我使用emit SIGNAL_FUNCTION (qint32 new_value)
使用我的方法是否存在使我的应用程序崩溃的风险?还有另一种更正确的方法来处理这种程序吗?
我在下面附上了我的代码。
#include "luminosite.h"
LUMINOSITE::LUMINOSITE(QObject *parent, qint32 P_PIN_LUMINOSITE) :
QThread(parent)
{
PIN_LUMINOSITE = P_PIN_LUMINOSITE;
VALEUR = 1;
}
void LUMINOSITE::run()
{
qint32 TICK = 0;
while(true)
{
if (TICK == 0)
{
digitalWrite(PIN_LUMINOSITE, LOW);
}
else if (TICK == VALEUR)
{
digitalWrite(PIN_LUMINOSITE, HIGH);
}
TICK++;
if (TICK == 33)
{
TICK = 0;
}
delayMicroseconds(1);
}
}
void LUMINOSITE::CHANGEMENT_VALEUR(qint32 P_VALEUR) // SLOT
{
VALEUR = P_VALEUR;
}