我有一个测量行程的计数器。我已在微控制器中分配了3个字节,这意味着我最多可以计数16777216。我想保持该计数,但是当我的计数超过255时,阵列的LSB重置为零,并且我被困在如何通过递增计数来递增到下一个数组元素计数
我试过了
Counterarray[strokelsb] = strokecount;
if(strokecount > 255)
Counterarray[strokemid] = strokecount |Counterarray[strokelsb] ;
Counterarray[strokelsb] = strokecount;
if(strokecount > 255)
Counterarray[strokemid] = strokecount |Counterarray[strokelsb] ;
预期结果
Counterarray[strokelsb] = oxFF
Counterarray[strokemid] + Counterarray[strokelsb] = 4095
最佳答案
我不确定什么是变量strokecount
,什么是该变量的类型。您不需要此变量具有3个字节的计数器。
下面的计数器从0到16777215计数并翻转。
if (//counter logic for one tick over)
{
Counterarray[strokelsb]++;
if (Counterarray[strokelsb] == 0x00)
{
Counterarray[strokemid]++;
if (Counterarray[strokemid] == 0x00)
{
Counterarray[strokemsb]++;
}
}
}