/* * ivec_utils.h * * Created on: 22-Jan-2024 * Author: saar */ #ifndef UTILS_IVEC_UTILS_H_ #define UTILS_IVEC_UTILS_H_ #include #include #include "ti_msp_dl_config.h" /* Generic Status Codes */ typedef enum { IVEC_MCAL_STATUS_INIT_FAIL = -1, IVEC_MCAL_STATUS_SUCCESS , /*!< Generic operation success status */ IVEC_MCAL_STATUS_ERROR , /*!< Generic operation failure status */ IVEC_MCAL_STATUS_BUSY , /*!< Generic operation busy status */ IVEC_MCAL_STATUS_TIMEOUT , /*!< Generic operation timeout status */ IVEC_MCAL_STATUS_UNSUPPORTED , /*!< Generic operation unsupported status */ IVEC_MCAL_STATUS_TRUE , /*!< Generic operation true status */ IVEC_MCAL_STATUS_FALSE , /*!< Generic operation false status */ } IVEC_McalStatus_e; /* Peripheral Identifiers */ #define IVEC_GPIO 5 #define IVEC_UART 1 #define IVEC_HFXT 2 #define IVEC_STANDBY0 3 #define IVEC_SYSOSC 4 #define IVEC_SLEEP0 6 /* Core Status Codes */ typedef enum { IVEC_CORE_STATUS_INIT_FAIL = 1, IVEC_CORE_STATUS_SUCCESS = 0, /*!< Generic operation success status */ IVEC_CORE_STATUS_ERROR = -1, /*!< Generic operation failure status */ IVEC_CORE_STATUS_BUSY = 2, /*!< Generic operation busy status */ IVEC_CORE_STATUS_TIMEOUT = 3, /*!< Generic operation timeout status */ IVEC_CORE_STATUS_UNSUPPORTED = 4, /*!< Generic operation unsupported status */ } IVEC_CoreStatus_e; /* UART Baud Rate Options */ typedef enum { IVEC_UART_BAUD_115200 = 0, IVEC_UART_BAUD_9600 = 1, } IVEC_UartBaud_e; /* CAN Baud Rate Options */ typedef enum { IVEC_CAN_BAUD_500 = 500, IVEC_CAN_BAUD_250 = 250, IVEC_CAN_BAUD_150 = 150, IVEC_CAN_BAUD_1000 = 1000, IVEC_CAN_BAUD_125 = 125, } IVEC_CanBaud_e; /* SPI Clock Speed Options */ typedef enum { IVEC_SPI_CS_1MHZ = 0, } IVEC_SpiCs_e; /* SysTick Period Options */ typedef enum { IVEC_SYSTICK_PERIOD_1MS = 72000, /*!< Sets period of SysTick to 1ms @48Mhz */ } IVEC_SystickPeriod_e; /* I2C Baud Rate Options */ typedef enum { IVEC_I2C_BAUD_100KHZ = 0, IVEC_I2C_BAUD_400KHZ, } IVEC_I2cBaud_e; /* I2C Controller Status */ typedef enum { IVEC_I2C_STATUS_IDLE = 0, IVEC_I2C_STATUS_TX_STARTED, IVEC_I2C_STATUS_TX_INPROGRESS, IVEC_I2C_STATUS_TX_COMPLETE, IVEC_I2C_STATUS_RX_STARTED, IVEC_I2C_STATUS_RX_INPROGRESS, IVEC_I2C_STATUS_RX_COMPLETE, IVEC_I2C_STATUS_ERROR, } IVEC_I2cControllerStatus_e; /* Function Declarations */ void vMCAL_McuInit(void); IVEC_CoreStatus_e xMCAL_SysctlInit(uint8_t u8ClkSrc, uint8_t u8LpMode); IVEC_CoreStatus_e xMCAL_SystickInit(IVEC_SystickPeriod_e xTick); int32_t i32MCAL_GetTicks(void); void vMCAL_DelayTicks(int32_t i32DelayMs); void vMCAL_SoftReset(void); void vMCAL_DelayUs(uint32_t u32Us); IVEC_McalStatus_e xMCAL_VrefInit(void); #endif /* UTILS_IVEC_UTILS_H_ */