i_zw 发表于 2024-4-25 00:21:15

T11定时器,新增24位低功耗定时器 T11

STC8H2K08U, STC8H2K12U, STC8H2K17U 有 T11
STC8H2K32U, 有 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有什么特殊的吗?

xiangzichen 发表于 2024-4-25 00:58:37

定时器11??哪款??

神农鼎 发表于 2024-4-25 07:38:22





STC8H2K08U, STC8H2K12U, STC8H2K17U 有 T11
STC8H2K32U, 有 T11






Lkck8210 发表于 2024-4-25 10:14:01

你的STC-ISP要更新了




晓飛飛 发表于 2024-4-25 10:16:09

CSEG AT 021BH
JMP   006BH
END重点考虑中断向量的问题,中断向量13是借用的,创建一个isr.asm文件,将以上代码复制进去,保存一起编译即可

i_zw 发表于 2024-4-25 21:49:36

Lkck8210 发表于 2024-4-25 10:14
你的STC-ISP要更新了

我也是用的这个版本,是“”范例程序“”这个TAB里面只有1-4的定时器的完整例子

神农鼎 发表于 2024-4-25 22:08:42


晓飛飛 发表于 2024-4-25 22:27:06

神农鼎 发表于 2024-4-25 22:08


您好,T11选低速IRC的话,时钟频率这里需要手动输入0.032对吧,默认是11.0592.


i_zw 发表于 2024-4-25 22:31:13

本帖最后由 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起来的例子

i_zw 发表于 2024-4-25 22:37:25

晓飛飛 发表于 2024-4-25 22:27
您好,T11选低速IRC的话,时钟频率这里需要手动输入0.032对吧,默认是11.0592.




T11 只能用来内部IRC唤醒吗,是不是能也可以用系统时钟做普通定时器。文档例子代码注释的有用系统时钟的
页: [1] 2 3
查看完整版本: T11定时器,新增24位低功耗定时器 T11