115 lines
3.4 KiB
C
115 lines
3.4 KiB
C
/*
|
|
* ivec_utils.h
|
|
*
|
|
* Created on: 22-Jan-2024
|
|
* Author: saar
|
|
*/
|
|
|
|
#ifndef UTILS_IVEC_UTILS_H_
|
|
#define UTILS_IVEC_UTILS_H_
|
|
|
|
#include <stdlib.h>
|
|
#include <assert.h>
|
|
#include "ti_msp_dl_config.h"
|
|
|
|
#define WATCHDOG_TIMER WWDT1
|
|
typedef enum
|
|
{
|
|
MCAL_WDT_1_SEC_TIMER = 1,
|
|
MCAL_WDT_2_SEC_TIMER,
|
|
MCAL_WDT_3_SEC_TIMER,
|
|
MCAL_WDT_4_SEC_TIMER,
|
|
MCAL_WDT_5_SEC_TIMER,
|
|
MCAL_WDT_6_SEC_TIMER,
|
|
MCAL_WDT_7_SEC_TIMER,
|
|
MCAL_WDT_8_SEC_TIMER,
|
|
MCAL_WDT_16_SEC_TIMER = 16,
|
|
MCAL_WDT_24_SEC_TIMER = 24,
|
|
MCAL_WDT_32_SEC_TIMER = 32,
|
|
MCAL_WDT_40_SEC_TIMER = 40,
|
|
MCAL_WDT_48_SEC_TIMER = 48,
|
|
MCAL_WDT_56_SEC_TIMER = 56,
|
|
MCAL_WDT_64_SEC_TIMER = 64
|
|
}MCAL_WWDT_TIMER;
|
|
|
|
/* 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;
|
|
|
|
|
|
/* 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);
|
|
void vMCAL_WDG_Refresh(void);
|
|
void vMCAL_WatchdogDisablePower(void);
|
|
void vMCAL_WatchdogEnablePower(void);
|
|
bool bMCAL_IsWatchdogRunning(void);
|
|
|
|
#endif /* UTILS_IVEC_UTILS_H_ */
|