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;
}
私はスケジューラを使用してミリ秒ごとに関数を呼び出しています。理論的には、同じ手法を使用してセグメントに値を割り当てると、これは機能するはずです。何が起こるかというと、開始値が 8 で、7 になるはずです。 、6、5、4 などを 0 まで続けますが、何らかの理由で 8 から 42 になり、そこにとどまります。
私はそれを修正しようとしましたが、不足しています。