求助 STC8H4K32TL 定时器哪个最大可以设置2秒溢出
TM4PS = 0x0F; //设置定时器时钟预分频 ( 注意:并非所有系列都有此寄存器,详情请查看数据手册 )T4T3M &= 0xDF; //定时器时钟12T模式
T4L = 0xDC; //设置定时初始值
T4H = 0x0B; //设置定时初始值
T4T3M |= 0x80; //定时器4开始计时
TM4PS好像不起作用 加不加都一样很快溢出
打开stcisp有惊喜 下载软件里面好像都有吧…
记得要用定时器计算器哦
soma 发表于 2024-3-25 09:32
打开stcisp有惊喜
大神 请详细阅读内容 wan123456 发表于 2024-3-25 12:14
下载软件里面好像都有吧…
大神 请详细阅读内容 国学芯用 发表于 2024-3-25 12:57
记得要用定时器计算器哦
大神 请详细阅读内容TM4PS好像不起作用 加不加都一样很快溢出定时器位宽 晶振 分频 就决定了定时器溢出范围 TM4PS是扩展寄存器,使用前要先设置扩展寄存器访问使能。
void main(void)
{
P_SW2 |= 0x80;//扩展寄存器(XFR)访问使能
P0M1 = 0x00; P0M0 = 0x00; //设置为准双向口
P1M1 = 0x00; P1M0 = 0x00; //设置为准双向口
P2M1 = 0x00; P2M0 = 0x00; //设置为准双向口
P3M1 = 0x00; P3M0 = 0x00; //设置为准双向口
P4M1 = 0x00; P4M0 = 0x00; //设置为准双向口
P5M1 = 0x00; P5M0 = 0x00; //设置为准双向口
P6M1 = 0x00; P6M0 = 0x00; //设置为准双向口
P7M1 = 0x00; P7M0 = 0x00; //设置为准双向口
Timer4_Init();
EA = 1; //打开总中断
while (1)
{
}
}
void Timer4_Isr(void) interrupt 20
{
P20 = !P20;
}
void Timer4_Init(void) //2秒@24.000MHz
{
TM4PS = 0x3D; //设置定时器时钟预分频 ( 注意:并非所有系列都有此寄存器,详情请查看数据手册 )
T4T3M &= 0xDF; //定时器时钟12T模式
T4L = 0xFC; //设置定时初始值
T4H = 0x03; //设置定时初始值
T4T3M |= 0x80; //定时器4开始计时
IE2 |= 0x40; //使能定时器4中断
} 本帖最后由 xiangzichen 于 2024-3-26 15:09 编辑
随便哪个定时器,定个1ms,然后里面加计数器,多少时间都没问题吧.何必倒腾那么大,不过打开isp软件,居然真的有:
24位定时器
不过我还没有用过,这个有空了得试试看.