打印
[其它应用]

频率偏差很大

[复制链接]
2168|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
songqian17|  楼主 | 2022-8-3 22:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
中颖SH79F1615定时器0用内部27MRC定时频率偏差很大

使用特权

评论回复
沙发
heweibig| | 2022-8-3 22:27 | 只看该作者
楼主详细说说怎么回事啊,这么说太笼统了

使用特权

评论回复
板凳
songqian17|  楼主 | 2022-8-3 22:29 | 只看该作者
现在想用sh79f1615的time0实现10mS定时中断,定时器甚至为工作方式1,系统时钟为内部27Mrc。硬件电路,没有接外部晶振,XTAL1和XTAL2悬空用JET51仿真器,通过ISP51软件对整个flash区域编程下载程序,代码选项“OP_OSC”设置为oscillator1 is internal 27M RC,oscillator2 is disabled. 但是测得的中断频率几乎是10mS的四倍。请指出问题出在哪?

使用特权

评论回复
地板
zhaoxqi| | 2022-8-3 22:31 | 只看该作者
楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
5
songqian17|  楼主 | 2022-8-3 22:35 | 只看该作者

//====时钟分频=====   
#define     CLK_DIV1    0X00  
#define     CLK_DIV2    0X01  
#define     CLK_DIV4    0X02  
#define     CLK_DIV12   0X03

#define Bank0 INSCON &= 0xbf
#define Bank1 INSCON |= 0x40

//时钟通道2  
  
void Init_Clk2(unsigned char Pscr)  
{  
        unsigned int i;
    Bank0;  
        
    CLKCON = 0X00 ;  
    CLKCON |= (Pscr<<5) ;//分频设置  
         
    CLKCON |= (1<<3) ;    //打开OSCXCLK   
    for(i=60900;i>0;i--) ;
    CLKCON |= (1<<2) ;    // 把它作为振荡(OSCSCLK)时钟  
   
}  


unsigned int uiSysTime = 0;
void time0_Initial(void)
{
        
        IEN0 = 0xc2;                        //打开定时器0中断和总中断

        TMOD = 0x01;                        //设置Timer0工作方式为方式1
        TCON1 = 0x04;                        //将系统时钟作为定时器0的时钟源         
        TL0 = 0x1b;                        //设置Timer0定时器初值为0xa81b,10mS溢出中断一次
        TH0 = 0xa8;        TR0 = 1;                                //打开Timer0
}
void        Timer0_ISP(void) interrupt 1
{
        EA        =        0;               
        TF0  = 0;                                                        
        //-------------------
        uiSysTime++;
        if((uiSysTime%100==0)&&(uiSysTime != 0))
        {
           P0=P0^(1<<5);
        }

        //-------------------
        EA        =        1;
}
void main(void)
{         

        Init_Clk2(CLK_DIV2);        
        time0_Initial();

        
        while(1)  
        {
                 
        
        }
  
}

使用特权

评论回复
6
daichaodai| | 2022-8-4 08:16 | 只看该作者
内部RC精度和稳定性无法保证

使用特权

评论回复
7
jlyuan| | 2022-8-4 21:13 | 只看该作者
差四倍,那就是你的取值错了。你可以再取个5ms试试,说不定还是正好差四倍。

使用特权

评论回复
8
songqian17|  楼主 | 2022-8-4 21:15 | 只看该作者
请问内部的高频27M RC是如何配置的;若系统时钟为27M Hz;定时器分频系数也是1/1,计数器0是每秒计数27M次吧

使用特权

评论回复
9
wyjie| | 2022-8-4 21:17 | 只看该作者
4倍这个夸张了,应该是哪里没有配置好

使用特权

评论回复
10
zwll| | 2022-8-4 21:19 | 只看该作者
定时器不要重装载吗

使用特权

评论回复
11
dingy| | 2022-8-4 21:21 | 只看该作者
如果在不精准的环境,是可以使用的,不然使用外部晶振靠谱点。

使用特权

评论回复
12
songqian17|  楼主 | 2022-8-4 21:23 | 只看该作者
好的,我明天去单位试一下,多谢各位大侠了哈        

使用特权

评论回复
13
chenqianqian| | 2022-8-5 08:03 | 只看该作者
还是使用外部时钟源吧

使用特权

评论回复
14
GGLOAM| | 2022-8-5 11:53 | 只看该作者
好像没有重载初始计数值。

使用特权

评论回复
15
两只袜子| | 2024-3-17 08:00 | 只看该作者
建议使用外部晶振作为时钟源

使用特权

评论回复
16
jcky001| | 2024-3-17 09:09 | 只看该作者
查阅中颖SH79F1615的数据手册或参考手册,查看是否有相关的校准或补偿步骤。
通过校准或补偿,你可以调整RC振荡器的频率,使其更接近标称值。

使用特权

评论回复
17
cr315| | 2024-3-17 10:00 | 只看该作者
电源电压是否稳定

使用特权

评论回复
18
CarterERO| | 2024-3-18 11:05 | 只看该作者
可能是晶振不够稳吧

使用特权

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

本版积分规则

463

主题

5749

帖子

1

粉丝