晓飛飛
发表于 2024-4-25 23:24:35
i_zw 发表于 2024-4-25 22:37
T11 只能用来内部IRC唤醒吗,是不是能也可以用系统时钟做普通定时器。文档例子代码注释的有用系统时钟的 ...
T11的时钟源灵活,除了低功耗唤醒,还支持普通定时器计数器的功能,是支持外部晶振和内部高低速IRC提供时基的,支持12T模式和8位预分频,我测试了没什么问题,下面的代码参考一下。
132
main.c
#include "stc8h.h"
#include "intrins.h"
void Timer11_Isr(void) interrupt USER_VECTOR
{
P16 = !P16;
P17 = !P16;
}
void Timer11_Init(void) //1秒@11.0592MHz
{
T11CR &= 0xf3;
T11CR |= 0x04; //选择时钟源 (内部高速IRC)
T11PS = 0x0E; //设置定时器时钟预分频 ( 注意:并非所有系列都有此寄存器,详情请查看数据手册 )
T11CR &= 0xEF; //定时器时钟12T模式
T11L = 0x00; //设置定时初始值
T11H = 0x10; //设置定时初始值
T11CR |= 0x80; //定时器11开始计时
T11CR |= 0x02; //使能定时器11中断
}
void main()
{
EAXSFR(); //
P0M0 = 0x00;P0M1 = 0x00;
P1M0 = 0xc0;P1M1 = 0x00;
P2M0 = 0x00;P2M1 = 0x00;
P3M0 = 0x00;P3M1 = 0x00;
P4M0 = 0x00;P4M1 = 0x00;
P5M0 = 0x00;P5M1 = 0x00;
Timer11_Init();
EA = 1;
while (1);
}
irs.A51
CSEG AT021BH
JMP 006BH
END
xiangzichen
发表于 2024-4-26 01:33:29
我是遇到问题才去翻手册,,,,没成想STC居然隐藏了个T11.....{:4_167:}
xxkj2010
发表于 2024-4-26 08:00:55
楼主的板子用导线暂连,可以测试多款芯片,应该是通用型的吧?
_奶咖君_
发表于 2024-4-26 08:54:16
xiangzichen 发表于 2024-4-26 01:33
我是遇到问题才去翻手册,,,,没成想STC居然隐藏了个T11.....
挺好的一个设计,,据说是为了搞类似systick定时器功能。。宣发也是这么宣发的。。
xiangzichen
发表于 2024-4-26 09:07:51
_奶咖君_ 发表于 2024-4-26 08:54
挺好的一个设计,,据说是为了搞类似systick定时器功能。。宣发也是这么宣发的。。 ...
看来还是要学习下看手册,起码看看目录,万一哪个功能能节省不少代码呢{:4_167:}?
晓飛飛
发表于 2024-4-26 17:01:08
_奶咖君_ 发表于 2024-4-26 08:54
挺好的一个设计,,据说是为了搞类似systick定时器功能。。宣发也是这么宣发的。。 ...
搞systick的话,中断号太大还是个不大不小的坑,而且中断优先级固定为 0 级(最低级),也就是说这个中断是优先级最低的里面最靠后的,做systick定时器的话,体验应该会受到影响。
_奶咖君_
发表于 2024-4-26 17:13:04
晓飛飛 发表于 2024-4-26 17:01
搞systick的话,中断号太大还是个不大不小的坑,而且中断优先级固定为 0 级(最低级),也就是说这个中断 ...
中断号这个确实在不想换编译器的情况下 确实有点蛋疼,,中断优先级这个 我看CM3里面 好像也是最低优先级来着?好像也没听说有吐槽优先级这个的,,,也可能是我用的少,关注的少吧{:4_167:}
晓飛飛
发表于 2024-4-26 21:44:53
_奶咖君_ 发表于 2024-4-26 17:13
中断号这个确实在不想换编译器的情况下 确实有点蛋疼,,中断优先级这个 我看CM3里面 好像也是最低优先级 ...
systick定时器中断优先级最低的话,意味着如果在其它中断里面调用基于systick的delay函数就会阻塞,如果能避免调用的话,那就无所谓了。
_奶咖君_
发表于 2024-4-28 08:50:41
晓飛飛 发表于 2024-4-26 21:44
systick定时器中断优先级最低的话,意味着如果在其它中断里面调用基于systick的delay函数就会阻塞,如果 ...
啊 这个意思啊,,,那确实是这么安排都会有的问题
晓飛飛
发表于 2024-4-28 14:05:52
_奶咖君_ 发表于 2024-4-28 08:50
啊 这个意思啊,,,那确实是这么安排都会有的问题
CM3的systick定时器中断优先级是可以配置的,不是固定最低,可以了解一下。