dword result;
BitTiming timingsToSet[3]; //variable definition
BitTiming timingsAreGet[3]; //variable definition
//-------------------------------------
//Define values for the nominal phase
//-------------------------------------
timingsToSet[0].Bitrate = 500000.0;
timingsToSet[0].Tseg1 = 55;
timingsToSet[0].Tseg2 = 24;
timingsToSet[0].Sjw = 24;
timingsToSet[0].BitTimingPhase = eCANNominalPhase;
timingsAreGet[0].BitTimingPhase = eCANNominalPhase;
timingsToSet[1].Bitrate = 1000000.0;
timingsToSet[1].Tseg1 = 27;
timingsToSet[1].Tseg2 = 12;
timingsToSet[1].Sjw = 12;
timingsToSet[1].BitTimingPhase = eCANFDPhase;
timingsAreGet[1].BitTimingPhase = eCANFDPhase;
timingsToSet[2].Bitrate = 4000000.0;
timingsToSet[2].Tseg1 = 6;
timingsToSet[2].Tseg2 = 3;
timingsToSet[2].Sjw = 2;
timingsToSet[2].BitTimingPhase = eCANXLPhase;
timingsAreGet[2].BitTimingPhase = eCANXLPhase;
//-------------------------------------
//-------------------------------------
//Configure the new values
//-------------------------------------
result = SetCanBittimingConfiguration(1, timingsToSet, 3);
if(result == 0)
{
result = GetCanBittimingConfiguration(1, timingsAreGet, 3);
if(result == 0)
{
int index;
for(index = 0; index < 3; ++index)
{
write("Settings: Phase = %d bitrate = %f, tseg1 = %d, tseg2=%d, sjw = %d", timingsAreGet[index].BitTimingPhase, timingsAreGet[index].Bitrate, timingsAreGet[index].tseg1, timingsAreGet[index].tseg2, timingsAreGet[index].sjw);
}
}
}