You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.0 KiB
67 lines
2.0 KiB
#include "timer12.h"
|
|
#include "gpio_state_led.h"
|
|
|
|
#define TIMER1n_PERIPHERAL TIMER12
|
|
#define TIMER1n_IRQ_TYPE TIMER12_IRQn
|
|
#define TIMER1n_INTERRUPT_MASK MSK_TIMER12
|
|
|
|
|
|
static TIMER_CALLBACK Timer12_Match_Callback = NULL;
|
|
|
|
|
|
|
|
|
|
|
|
void Timer12_Initialization(void)
|
|
{
|
|
TIMER1n_PERIODICCFG_Type TIMER1n_Config;
|
|
|
|
TIMER1n_Config.CkSel = TIMER1n_PCLK; // PCLK = 40MHz
|
|
TIMER1n_Config.Prescaler = 40; // fTIMER = PCLK / 40 = 1MHz
|
|
TIMER1n_Config.ADR = ( 1000 ); // Period = ADR / fTIMER = 1000us
|
|
TIMER1n_Config.StartLevel = TIMER1n_START_LOW;
|
|
TIMER1n_Config.BDR = 0; // Duty(B) = BDR / fTIMER = 0us // dummy parameter
|
|
TIMER1n_Config.ECE = TIMER1n_FALLING_EGDE; // dummy parameter
|
|
|
|
HAL_TIMER1n_Init((TIMER1n_Type*)TIMER1n_PERIPHERAL, TIMER1n_PERIODIC_MODE, &TIMER1n_Config);
|
|
HAL_TIMER1n_ConfigInterrupt((TIMER1n_Type*)TIMER1n_PERIPHERAL, TIMER1n_INTCFG_MIE, ENABLE);
|
|
|
|
NVIC_SetPriority(TIMER1n_IRQ_TYPE, 3);
|
|
NVIC_EnableIRQ(TIMER1n_IRQ_TYPE);
|
|
HAL_INT_EInt_MaskDisable(TIMER1n_INTERRUPT_MASK);
|
|
|
|
HAL_TIMER1n_Cmd((TIMER1n_Type*)TIMER1n_PERIPHERAL, ENABLE ); // timer start & clear
|
|
}
|
|
|
|
|
|
void Timer12_Set_Match_Interrupt_Callback(TIMER_CALLBACK Callback)
|
|
{
|
|
Timer12_Match_Callback = Callback;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*----------------- INTERRUPT SERVICE ROUTINES --------------------------*/
|
|
/*********************************************************************//**
|
|
* @brief Timer12 interrupt handler sub-routine
|
|
* @param[in] None
|
|
* @return None
|
|
**********************************************************************/
|
|
void TIMER12_Handler(void)
|
|
{
|
|
// TODO : Type your code here
|
|
uint32_t status;
|
|
status = T1nMaInt_GetFg(TIMER1n_PERIPHERAL);
|
|
if (status == 1)
|
|
{
|
|
T1nMaInt_ClrFg(TIMER1n_PERIPHERAL);
|
|
if(Timer12_Match_Callback != NULL)
|
|
Timer12_Match_Callback();
|
|
}
|
|
}
|
|
|