Hirdetés

Új hozzászólás Aktív témák

  • tototos

    őstag

    válasz dabadab #4234 üzenetére

    Köszi.

    Hát most végül működik 64 bites változóval de nem tudom mennyire optimális.
    Ez az amikor kiveszek egy tömbböl elemeket

    uint8_t LINReceiveBuffer[8];

    LINScheduleTable[ScheduleTableIndex].LINScheduleTableFrame.LINFrameValue = 0;
    for (Index = 0;Index < ResponseDataByteIndex-1;Index++)
    {
    LINScheduleTable[ScheduleTableIndex].LINScheduleTableFrame.LINFrameValue += (LINReceiveBuffer[Index+1] << ((LINScheduleTable[ScheduleTableIndex].LINScheduleTableFrame.LINFrameDataLength - 1 - Index)*8));
    }

    Ezzel rakom be:

    if (ResponseDataByteIndex < LINScheduleTable[ScheduleTableIndex].LINScheduleTableFrame.LINFrameDataLength)
    {

    DataCheck = (uint8_t)(LINScheduleTable[ScheduleTableIndex].LINScheduleTableFrame.LINFrameValue >> (LINScheduleTable[ScheduleTableIndex].LINScheduleTableFrame.LINFrameDataLength - 1 - ResponseDataByteIndex)*8);
    LINChecksumBuffer[ResponseDataByteIndex+1] = DataCheck;
    USART_SendData(USART6,DataCheck);
    ResponseDataByteIndex++;
    }

Új hozzászólás Aktív témák