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
| Parameter | Direction | Type | Description |
|---|---|---|---|
pChannelConfig | in | emsacan_advanced_channel_config_t | Advanced timing configuration. |
pNominalBitrate | out | uint16_t | Nominal bit rate (kbps). |
pNominalSamplePoint | out | float | Nominal sample point (%); may be NULL if not needed. |
pDataBitrate | out | uint16_t | Data phase bit rate for CAN FD (kbps). |
pDataSamplePoint | out | float | Data 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);
