[技术问答] [M051] 关于定时器定时时间设置的问题

[复制链接]
3686|9
 楼主| lussby 发表于 2014-5-22 08:43 | 显示全部楼层 |阅读模式

求高手指点下M051的定时器0定时时间怎么设置,我采用的是外部晶振12MHZ的,现在用的程序如下:程序实现了定时,外部中断,串口,但是我不知道时间怎么设置,现在要每1US中断一次,希望知道怎么设置的朋友能够帮下我的忙,非常谢谢!!! Timer0.rar (850.18 KB, 下载次数: 24)
springvirus 发表于 2014-5-22 08:52 | 显示全部楼层
void TMR0_Init(void)
{

        _TIMER_RESET(TIMER0);       

        NVIC_EnableIRQ(TMR0_IRQn);

        TIMER0->TCMPR = DISPLAY_MOVING_200MS;
       
        //Timeout Period = (Tclk)*(8bit prescaler + 1)*(24bit TCMP);
       

        TIMER0->TCSR = TIMER_TCSR_IE_Msk | TIMER_TCSR_MODE_PERIODIC | TIMER_TCSR_TDR_EN_Msk | TIMER_TCSR_PRESCALE(1);
       
}

TIMER0->TCMPR就是根据溢出时间而计算的值,相关设定还涉及到SYS_Init()
 楼主| lussby 发表于 2014-5-22 09:17 | 显示全部楼层
springvirus 发表于 2014-5-22 08:52
void TMR0_Init(void)
{

恩,非常感谢你的回贴,你能帮我看下我的程序吗?上面有链接,谢谢。
springvirus 发表于 2014-5-22 10:43 | 显示全部楼层
lussby 发表于 2014-5-22 09:17
恩,非常感谢你的回贴,你能帮我看下我的程序吗?上面有链接,谢谢。

//Timeout Period = (Tclk)*(8bit prescaler + 1)*(24bit TCMP);
拿这个,计算1us需要的TCMP值就可以了啊
springvirus 发表于 2014-5-22 10:44 | 显示全部楼层
lussby 发表于 2014-5-22 09:17
恩,非常感谢你的回贴,你能帮我看下我的程序吗?上面有链接,谢谢。

很多东西都是在捣鼓,折腾中熟悉和掌握的~~~
haolaishi 发表于 2014-5-22 14:52 | 显示全部楼层
定时器时钟源,然后分频,你直接用库函数就好,里面可以设置的,省的自己计算

评论

评价很到味  发表于 2014-6-13 15:54
haolaishi 发表于 2014-5-26 07:51 | 显示全部楼层
楼主好了没,这几天没时间上网!
 楼主| lussby 发表于 2014-5-26 08:16 | 显示全部楼层
haolaishi 发表于 2014-5-26 07:51
楼主好了没,这几天没时间上网!

恩恩,好了。谢谢你!:)
Dick00 发表于 2014-5-26 08:32 | 显示全部楼层
定时器还算简单吧注意下时钟频率,看看有没有分频和倍频,如果只做简单的延时的话用系统定时器也比较方便。。。
andila 发表于 2014-6-4 16:15 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

144

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部