我有一个测量行程的计数器。我已在微控制器中分配了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]++;
        }
    }
}

10-08 00:40