- 打卡等级:偶尔看看I
- 打卡总天数:11
- 最近打卡:2026-06-13 16:45:25
已绑定手机
注册会员
- 积分
- 72
|
发表于 2026-6-13 16:45:25
|
显示全部楼层
u8 Timer11_Config(u32 ReloadTime) //ReloadTime值是时间, 单位ms,不超过85000ms
{
u16 i;
P_SW2 |= 0x80; //SFR enable
Timer11_DISABLE(); //停止计数, 定时模式, 12T模式, 不输出时钟
ReloadTime = (u32)((T11_CLK * ReloadTime)/1000); //重装的是时间(单位ms, 不超过85000ms), 计算所需要的系统时钟数.
if(ReloadTime >= (65536UL * 12 *256)) return 1; //值过大, 返回错误
if(ReloadTime >= (65536UL *256)) //12T模式
{
Timer11_12T(); //12T模式
ReloadTime /= 12;
}
else Timer11_1T(); //1T模式
i = (u16)(ReloadTime >> 16); //预分频值,最大255. ( 注意:并非所有系列都有此寄存器,详情请查看数据手册 )
T11PS = (u8)i; //设置定时器时钟预分频 ( 注意:并非所有系列都有此寄存器,详情请查看数据手册 )
i++;
i = 65536UL - (u16)(ReloadTime / i);
T11 = i; //T11重装值
// Timer11_EXT_32K(); // 定时器T11时钟源为外部32K晶振
Timer11_LOW_IRC(); // 定时器T11时钟源为内部低速IRC
Timer11_AsTimer(); //定时器模式 Timer11_AsTimer(); Timer11_AsCounterP14();
// Timer11_CLKO_EnableP15(); //允许输出时钟
// P1n_standard(Pin5); //P1.5设置为准双向口
Timer11_InterruptEnable(); //允许中断
Timer11_Run(); //开始运行
return 0;
}
中间有好多子函数,怎么打不开?比如Timer11_DISABLE(); //停止计数, 定时模式, 12T模式, 不输出时钟,Timer11_12T(); //12T模式
|
|