CAN DragonEmSA
functionParameters

EmSACAN_CalculateTiming

Prototype

emsacan_result_t EmSACAN_CalculateTiming(
    emsacan_advanced_channel_config_t *pChannelConfig,
    uint16_t *pNominalBitrate,
    float *pNominalSamplePoint,
    uint16_t *pDataBitrate,
    float *pDataSamplePoint );

Description

Derives nominal/data bit rates and sample points from an advanced port configuration.

Parameters

ParameterDirectionTypeDescription
pChannelConfiginemsacan_advanced_channel_config_tAdvanced timing configuration.
pNominalBitrateoutuint16_tNominal bit rate (kbps).
pNominalSamplePointoutfloatNominal sample point (%); may be NULL if not needed.
pDataBitrateoutuint16_tData phase bit rate for CAN FD (kbps).
pDataSamplePointoutfloatData sample point for CAN FD (%); may be NULL if not needed.

Example

emsacan_advanced_channel_config_t adv = { /* fill timing fields */ };
uint16_t nom_kbps, data_kbps;
float nom_sp, data_sp;
if (EmSACAN_CalculateTiming(&adv, &nom_kbps, &nom_sp, &data_kbps, &data_sp) == EMSACAN_OK)
    printf("Nominal %u kbps @ %.1f%%\n", nom_kbps, nom_sp);

See also