本帖最后由 陌路独白 于 2021-1-26 11:23 编辑
谢谢,根据提示修改,已经进入中断,具体功能请再自行研究。/*
* @Descripttion:
* @version:
* @Author: Youliangxin
* @Date: 2021-01-25 17:24:57
* @LastEditors: sueRimn
* @LastEditTime: 2021-01-26 11:17:42
*/
#include "adt.h"
#include "gpio.h"
#define SET_LED Gpio_SetIO(1, 5, 1)
#define CLR_LED Gpio_SetIO(1, 5, 0)
void Adt4UnderFullCalllback(void)
{
static uint8_t i;
i++;
if (i % 2 == 0)
{
SET_LED;
}
else
{
CLR_LED;
}
}
void Time_4_Init(void)
{
uint16_t u16Period;
stc_adt_basecnt_cfg_t stcAdtBaseCntCfg;
DDL_ZERO_STRUCT(stcAdtBaseCntCfg);
if (Ok != Clk_SetPeripheralGate(ClkPeripheralAdt, TRUE)) //ADT外设时钟使能
{
return;
}
stcAdtBaseCntCfg.enCntMode = AdtSawtoothMode;
stcAdtBaseCntCfg.enCntDir = AdtCntUp;
stcAdtBaseCntCfg.enCntClkDiv = AdtClkPClk0Div256;
Adt_Init(AdTIM4, &stcAdtBaseCntCfg); //ADT载波、计数模式、时钟配置
u16Period = 46875; //12000000/256 = 46875 周期设置为1S中断一次
Adt_SetPeriod(AdTIM4, u16Period); //周期设置
Adt_ConfigIrq(AdTIM4, AdtOVFIrq, TRUE, Adt4UnderFullCalllback); //中断配置
Adt_StartCount(AdTIM4);
/*LED初始化*/
Gpio_InitIO(1, 5, GpioDirOut);
Gpio_SetIO(1, 5, 1);
}
/******************************************************************************
* EOF (not truncated)
******************************************************************************/
|