CH559L

在使用CH559L芯片的定时器,使用例程给的定时器,配置参数 无论8位 还是16位 会出现复位可能,能否给我一个定时器3 5ms自动进入定时器中断的例程 ,谢谢

你好,我司21号正式开工,到时给您提供一个例程。


好的 ,感谢


有空给我个案例


image.png

你好,设置过程可见上面代码备注,当前为设置1ms的过程,2、3ms定时器过程设置同理。另外需要注意的是,非自动重装载模式下,需要在中断里重新赋值,如下图所示:

image.png


icon_rar.gifCH559TIMER.zip

您好,附件中是定时35ms进中断的例程


@havc ,你给的程序 你测试了么,我怎么测试不是35ms啊,你自动装载8位的,初始值30536,对么


您好,需要改成模式1,16位定时器模式,初值30536算出来应该是35ms的。


昨天就觉得那个不对,昨天测试了改成模式1 16位定时器,在定时中断里 重载初始值,测试那个时间也不对,140多us,真希望你们测试完,在发我,不要想当然,自己测试一遍就知道问题所在了


您好,这段代码经过实测,P2.0翻转测得定时器时间

void    mTimer1Interruptvoid ) interrupt INT_NO_TMR1 using 1                   //timer1中断服务程序,使用寄存器组1

{   

    EA=0;    

    P2=0;   

    while(1);                                                     

}

main( ) 

{

    UINT8 a,b,c;


    mTimer1Clk12DivFsys( );                                                    //时钟选择Fsys定时器方式

    mTimer1ModSetup(1);                                                        //方式1                                                      

                        

    TL1  = (30536&0XFF);

    TH1 = (30536&0XFF00)>>8;


    PORT_CFG &= ~bP2_OC;                                                  //启动定时器

    P2_DIR =0xff;

    P2_PU = 0xff;                                                                   //使能定时计数器1中断

    P2=0

    mDelaymS(5);

    P2=0xff;    //使能全局中断

    TF1 =0;

    ET1 = 1;


    mTimer1RunCTL(1); 

    EA = 1

    while(1);

}



只有登录才能回复,可以选择微信账号登录