MCUSW
Icu.h File Reference

Introduction

This file contains interface header for ICU MCAL driver to be used by other AUTOSAR MCAL Layers.

Go to the source code of this file.

Macros to define Rising and Falling edge config for capture registers

#define ICU_FALLING   ((uint8)(0U))
 Capture regsiter configuration for FALLING edge. More...
 
#define ICU_RISING   ((uint8)(1U))
 Capture regsiter configuration for RISING edge. More...
 
enum  Icu_ModeType { ICU_MODE_NORMAL, ICU_MODE_SLEEP }
 This type defines a range of mode type. More...
 
enum  Icu_InputStateType { ICU_ACTIVE, ICU_IDLE }
 This type defines a input state of ICU driver. More...
 
enum  Icu_ActivationType { ICU_RISING_EDGE, ICU_FALLING_EDGE, ICU_BOTH_EDGES }
 This type defines Activation range. More...
 
enum  Icu_MeasurementModeType { ICU_MODE_SIGNAL_EDGE_DETECT, ICU_MODE_SIGNAL_MEASUREMENT, ICU_MODE_TIMESTAMP, ICU_MODE_EDGE_COUNTER }
 This type defines available measurement modes. More...
 
enum  Icu_SignalMeasurementPropertyType { ICU_LOW_TIME, ICU_HIGH_TIME, ICU_PERIOD_TIME, ICU_DUTY_CYCLE }
 This type defines Signal Measurement Property range. More...
 
enum  Icu_TimestampBufferType { ICU_LINEAR_BUFFER, ICU_CIRCULAR_BUFFER }
 This type defines TimeStamp Property range. More...
 
typedef uint32 Icu_ValueType
 This type defines Value type. More...
 
typedef uint32 Icu_IndexType
 This type defines return value Icu_GetTimeStampIndex. More...
 
typedef uint32 Icu_EdgeNumberType
 This type defines return value of Icu-Icu_GetEdgeNumbers. More...
 
typedef void(* Icu_NotifyFuncType) (void)
 Notification callback function pointer. More...
 
typedef uint8 Icu_ChannelType
 This type defines Channel type. More...
 
typedef uint32 Icu_ChannelPrescalerType
 This type defines Prescaler type. More...
 

Data Structures

struct  Icu_DutyCycleType
 This type defines Duty Cycle struct. More...
 
struct  Icu_ChannelConfigType_PC
 ICU Channel Config Structure of Pre-Compile only. More...
 
struct  Icu_ConfigType_PC
 ICU Config Structure of Pre-Compile only. More...
 
struct  Icu_ChannelConfigType
 ICU Channel Config Structure. More...
 
struct  Icu_ConfigType
 ICU Config Structure. More...
 
struct  Icu_RegisterReadbackType
 Icu register readback structure. More...
 

Macros

ICU Driver ID Info
#define ICU_VENDOR_ID   ((uint16) 44U)
 Texas Instruments Vendor ID. More...
 
#define ICU_MODULE_ID   ((uint16) 122U)
 ICU Driver Module ID. More...
 
#define ICU_INSTANCE_ID   ((uint8) 0U)
 ICU Driver Instance ID. More...
 
ICU Driver Module SW Version Info

Defines for ICU Driver version used for compatibility checks

#define ICU_SW_MAJOR_VERSION   (9U)
 Driver Implementation Major Version. More...
 
#define ICU_SW_MINOR_VERSION   (0U)
 Driver Implementation Minor Version. More...
 
#define ICU_SW_PATCH_VERSION   (1U)
 Driver Implementation Patch Version. More...
 
ICU Driver Module AUTOSAR Version Info

Defines for ICU Driver AUTOSAR version used for compatibility checks

#define ICU_AR_RELEASE_MAJOR_VERSION   (4U)
 AUTOSAR Major version specification implemented by ICU Driver. More...
 
#define ICU_AR_RELEASE_MINOR_VERSION   (3U)
 AUTOSAR Minor version specification implemented by ICU Driver. More...
 
#define ICU_AR_RELEASE_REVISION_VERSION   (1U)
 AUTOSAR Patch version specification implemented by ICU Driver. More...
 
ICU Service IDs

The Service Id is one of the argument to Det_ReportError function and is used to identify the source of the error

#define ICU_INIT_ID   ((uint8) 0x00U)
 Icu_Init() API Service ID. More...
 
#define ICU_DEINIT_ID   ((uint8) 0x01U)
 Icu_DeInit() API Service ID. More...
 
#define ICU_SETMODE_ID   ((uint8) 0x02U)
 Icu_SetMode() API Service ID. More...
 
#define ICU_SETACTIVATIONCONDITION_ID   ((uint8) 0x05U)
 Icu_SetActivationCondition() API Service ID. More...
 
#define ICU_DISABLENOTIFICATION_ID   ((uint8) 0x06U)
 Icu_DisableNotification() API Service ID. More...
 
#define ICU_ENABLENOTIFICATION_ID   ((uint8) 0x07U)
 Icu_EnableNotification() API Service ID. More...
 
#define ICU_GETINPUTSTATE_ID   ((uint8) 0x08U)
 Icu_GetInputState() API Service ID. More...
 
#define ICU_STARTTIMESTAMP_ID   ((uint8) 0x09U)
 Icu_StartTimestamp() API Service ID. More...
 
#define ICU_STOPTIMESTAMP_ID   ((uint8) 0x0AU)
 Icu_StopTimestamp() API Service ID. More...
 
#define ICU_GETTIMESTAMPINDEX_ID   ((uint8) 0x0BU)
 Icu_GetTimeStampIndex() API Service ID. More...
 
#define ICU_RESETEDGECOUNT_ID   ((uint8) 0x0CU)
 Icu_ResetEdgeCount() API Service ID. More...
 
#define ICU_ENABLEEDGECOUNT_ID   ((uint8) 0x0DU)
 Icu_EnableEdgeCount() API Service ID. More...
 
#define ICU_ENABLEEDGEDETECTION_ID   ((uint8) 0x16U)
 Icu_EnableEdgeDetection() API Service ID. More...
 
#define ICU_DISABLEEDGEDETECTION_ID   ((uint8) 0x17U)
 Icu_DisableEdgeDetection() API Service ID. More...
 
#define ICU_DISABLEEDGECOUNT_ID   ((uint8) 0x0EU)
 Icu_DisableEdgeCount() API Service ID. More...
 
#define ICU_GETEDGENUMBERS_ID   ((uint8) 0x0FU)
 Icu_GetEdgeNumbers() API Service ID. More...
 
#define ICU_STARTSIGNALMEASUREMENT_ID   ((uint8) 0x13U)
 Icu_StartSignalMeasurement() API Service ID. More...
 
#define ICU_STOPSIGNALMEASUREMENT_ID   ((uint8) 0x14U)
 Icu_StopSignalMeasurement() API Service ID. More...
 
#define ICU_GETTIMEELAPSED_ID   ((uint8) 0x10U)
 Icu_GetTimeElapsed() API Service ID. More...
 
#define ICU_GETDUTYCYCLEVALUES_ID   ((uint8) 0x11U)
 Icu_GetDutyCycleValues() API Service ID. More...
 
#define ICU_GETVERSIONINFO_ID   ((uint8) 0x12U)
 Icu_GetVersionInfo() API Service ID. More...
 
#define ICU_SID_REGISTER_READBACK   ((uint8) 0x18U)
 Icu_Regesterreadback() API Serviece ID. More...
 
ICU Error Codes

Error codes returned by ICU functions

#define ICU_E_PARAM_POINTER   ((uint8) 0x0AU)
 API service called with invalid pointer. More...
 
#define ICU_E_PARAM_CHANNEL   ((uint8) 0x0BU)
 API service called with invalid channel identifier or channel not configured. More...
 
#define ICU_E_PARAM_ACTIVATION   ((uint8) 0x0CU)
 API service calleed with an invalid or not feasible activation. More...
 
#define ICU_E_INIT_FAILED   ((uint8) 0x0DU)
 Init Function Failed. More...
 
#define ICU_E_PARAM_BUFFER_SIZE   ((uint8) 0x0EU)
 API service used with invalid Buffer size. More...
 
#define ICU_E_PARAM_MODE   ((uint8) 0x0FU)
 API service called with invalid mode. More...
 
#define ICU_E_UNINIT   ((uint8) 0x14U)
 API service calleed without module initialisation. More...
 
#define ICU_E_NOT_STARTED   ((uint8) 0x16U)
 Icu_StopTimestamp called on channel not started or already stopped. More...
 
#define ICU_E_BUSY_OPERATION   ((uint8) 0x16U)
 API service called while a running operation. More...
 
#define ICU_E_ALREADY_INITIALIZED   ((uint8) 0x17U)
 API service Icu_Init called when module already initialized. More...
 
#define ICU_E_PARAM_NOTIFY_INTERVAL   ((uint8) 0x18U)
 API service called when notify interval is invalid. More...
 
#define ICU_E_PARAM_VINFO   ((uint8) 0x19U)
 API service Icu_GetVersionInfo called and parameter is invalid. More...
 
ICU Driver State Values

The ICU Driver State Values

#define ICU_STATUS_UNINIT   ((uint8)(0U))
 ICU driver Status uninitialized. More...
 
#define ICU_STATUS_INIT   ((uint8)(1U))
 ICU driver Status Initialized. More...
 

Functions

void Icu_Init (const Icu_ConfigType *ConfigPtr)
 Service for ICU initialization. More...
 
void Icu_DeInit (void)
 Service for ICU de-initialization. More...
 
void Icu_SetActivationCondition (Icu_ChannelType Channel, Icu_ActivationType Activation)
 Service for setting Activation Condition. More...
 
void Icu_DisableNotification (Icu_ChannelType Channel)
 Service for disabling notification. More...
 
void Icu_EnableNotification (Icu_ChannelType Channel)
 Service for enabling notification. More...
 
Icu_InputStateType Icu_GetInputState (Icu_ChannelType Channel)
 Service for getting the ICU input status. More...
 
void Icu_StartTimestamp (Icu_ChannelType Channel, Icu_ValueType *BufferPtr, uint16 BufferSize, uint16 NotifyInterval)
 Service for starts the captuing of timer values on the edges. More...
 
void Icu_StopTimestamp (Icu_ChannelType Channel)
 Service for stopping the timestamp measurement. More...
 
Icu_IndexType Icu_GetTimestampIndex (Icu_ChannelType Channel)
 Service for reading the timestamp index of a givem channel. More...
 
void Icu_ResetEdgeCount (Icu_ChannelType Channel)
 Service for resets the value of the counted edges to zero. More...
 
void Icu_EnableEdgeCount (Icu_ChannelType Channel)
 Service enabling the counting of edges of a given channel. More...
 
void Icu_DisableEdgeCount (Icu_ChannelType Channel)
 Service for disabling the couting of edges of the given channel. More...
 
Icu_EdgeNumberType Icu_GetEdgeNumbers (Icu_ChannelType Channel)
 Service for reading the number of counted edges. More...
 
void Icu_EnableEdgeDetection (Icu_ChannelType Channel)
 Service for enabling/re-enabling the detection of edges of the given channel. More...
 
void Icu_DisableEdgeDetection (Icu_ChannelType Channel)
 Service for disabling the detection of edges of the given channel. More...
 
void Icu_StartSignalMeasurement (Icu_ChannelType Channel)
 Service for starting the measurement of signals. More...
 
void Icu_StopSignalMeasurement (Icu_ChannelType Channel)
 Service for stopping the measurement of signals. More...
 
Icu_ValueType Icu_GetTimeElapsed (Icu_ChannelType Channel)
 Service for reading the elasped time for the given channel. More...
 
void Icu_GetDutyCycleValues (Icu_ChannelType Channel, Icu_DutyCycleType *DutyCycleValues)
 Service for reading the coherent active time and period time of given channel. More...
 
void Icu_CheckWakeup (EcuM_WakeupSourceType WakeupSource)
 This function checks if a wakeup capable ICU channel is the source for a wakeup event and calls the ECU state manager service EcuM_SetWakeupEvent in case of a valid ICU channel wakeup event. More...
 
void Icu_DisableWakeup (Icu_ChannelType Channel)
 This function disables the wakeup capability of a single ICU channel. More...
 
void Icu_EnableWakeup (Icu_ChannelType Channel)
 This function (re-)enables the wakeup capability of the given ICU channel. More...
 
void Icu_SetMode (Icu_ModeType Mode)
 This function sets the ICU mode. More...
 
Std_ReturnType Icu_RegisterReadback (Icu_ChannelType IcuChannel, Icu_RegisterReadbackType *RegRbPtr)
 
Icu_IndexType Icu_GetTimeStampIndex (Icu_ChannelType Channel)