打印
[新唐博主]

N76E003 之 定时器0使用

[复制链接]
1115|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2021-11-3 16:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序说明,定时器0按工作模式1工作,初值为10ms。


#include "N76E003.h"
#include "SFR_Macro.h"
#include "Function_define.h"
#include "Common.h"
#include "Delay.h"




UINT8 u8TH0_Tmp,u8TL0_Tmp;


//初始化配置函数
void Init_Timer0(void)
{
        CKDIV=0X0C;
        TIMER0_MODE1_ENABLE;                   //Timer 0 and Timer 1 mode configuration
        clr_T0M;
               u8TH0_Tmp =TIMER_DIV12_VALUE_10ms>>8; //12分频初值
        u8TL0_Tmp =TIMER_DIV12_VALUE_10ms; //
        TH0 = u8TH0_Tmp;
        TL0 = u8TL0_Tmp;
        set_ET0;                                    //enable Timer0 interrupt
        set_EA;                                     //enable interrupts
        set_TR0;                                    //Timer0 run
        CKDIV=0X00;
}


void main (void)
{
        Init_Timer0();        //定时器0初始化
        while(1)
        {
        //填入你的代码
        }
}




//-------定时器0中断服务程序---------
void Timer0_isr(void) interrupt 1
{
        //重装初值
    TH0 = u8TH0_Tmp;
    TL0 = u8TL0_Tmp;


    time_ms++;
        if(time_ms>=1000)    //时间定时10s测试,初值10ms
    {
    //填入你的代码
    }
}


使用特权

评论回复
沙发
skyred| | 2021-11-4 13:54 | 只看该作者
处理函数,是不是放到中断外边比较好,
如果是复杂的处理,可能会引起不适

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1536

主题

14520

帖子

9

粉丝