晓飛飛 发表于 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定时器中断优先级是可以配置的,不是固定最低,可以了解一下。
页: 1 [2] 3
查看完整版本: T11定时器,新增24位低功耗定时器 T11