T11定时器,新增24位低功耗定时器 T11
STC8H2K08U, STC8H2K12U, STC8H2K17U 有 T11STC8H2K32U, 有 T11
计划用T11定时器做一个定时中断,ISP软件里面没有范例程序,
参考定时器计时器和pdf文档的例子,这样写了代码,但是没有启动起来,
void Timer11_Init(void) //2336us@22.1184MHz
{
P_SW2 |= 0x80; //????XFR???
T11CR &= 0xf3; //T11CS(use SYSclk)
T11CR |= 0x10; //1T mode
T11PS=0;
T11L = 0x2B; //???????
T11H = 0x36; //???????
T11CR |= 0x80;
T11CR &=0xfd;//T11CR|=0x02也不行
}
void TM11_Isr() interrupt 13
{
P10=!P10;
}
看看哪里有问题,或Timer11有什么特殊的吗?
定时器11??哪款??
STC8H2K08U, STC8H2K12U, STC8H2K17U 有 T11
STC8H2K32U, 有 T11
你的STC-ISP要更新了
CSEG AT 021BH
JMP 006BH
END重点考虑中断向量的问题,中断向量13是借用的,创建一个isr.asm文件,将以上代码复制进去,保存一起编译即可
Lkck8210 发表于 2024-4-25 10:14
你的STC-ISP要更新了
我也是用的这个版本,是“”范例程序“”这个TAB里面只有1-4的定时器的完整例子
神农鼎 发表于 2024-4-25 22:08
您好,T11选低速IRC的话,时钟频率这里需要手动输入0.032对吧,默认是11.0592.
本帖最后由 i_zw 于 2024-4-25 22:33 编辑
晓飛飛 发表于 2024-4-25 10:16
重点考虑中断向量的问题,中断向量13是借用的,创建一个isr.asm文件,将以上代码复制进去,保存一起编译即 ...
注意到了在参考文档例子后面注释里面说明需要进行中断映射。看了中断系统的地址列表里面看到了最后面的T11这个信息,在Timer11 的地址跳转到interrupt 13的地址上。
CSEG AT 021BH
JMP 006BH //interrupt 13
END
加到Keil里面isr.s的汇编代码,会被自动更名为isr.a51,编译的时候也会被编译。
只是最后还是没有定时跑起来,大家看看有没有调用T11起来的例子
晓飛飛 发表于 2024-4-25 22:27
您好,T11选低速IRC的话,时钟频率这里需要手动输入0.032对吧,默认是11.0592.
T11 只能用来内部IRC唤醒吗,是不是能也可以用系统时钟做普通定时器。文档例子代码注释的有用系统时钟的