我在写一个led灯上的数字代码,每5秒减少1
我现在的代码是
FiveSecDelay+=1;
if (FiveSecDelay ==100)
{
count2--; //decrement count2
for (uint32_t x = 0; x < 4; x++) //split count to to individual digits
{
new_value[x] = count2 % 10;
count2 = count2 / 10;
}
for (uint32_t i = 0; i < 4; i++)
{
Segment_Write(Digit[i],new_value[i]); assign value to segments
}
FiveSecDelay =0;
}
我使用一个schedular每毫秒调用一个函数,理论上这应该和我使用相同的技术给段赋值一样有效,
结果是,我的起始值是8,它应该是7,6,5,4,等等,直到0,但是由于某种原因,它从8变为42,一直保持在那里
我试过修,但没修好。
任何帮助都很好
谢谢你
最佳答案
void check() {
static int array[] = {142}; // why are you using an array here?
(*array)--;
}
int main() {
while(true)
{
check();
usleep(5000); // approximate
}
return 0;
}