找回密码
 立即注册
查看: 397|回复: 6

用定时器T11定时不准怎么解决

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:159
  • 最近打卡:2025-06-16 21:06:19

16

主题

55

回帖

611

积分

高级会员

积分
611
发表于 2024-12-29 23:25:41 | 显示全部楼层 |阅读模式
如题,下面是代码,


void main()
{
        P_SW2 |= 0x80;                //使能访问XFR寄存器
        WTST = 0;                          //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
       EAXFR = 1;                         //扩展寄存器(XFR)访问使能
       CKCON = 0;                         //提高访问XRAM速度
       
        //**********    配置I/O口状态,I/O口必须先配置好以后才能使用
        P0M1 = 0x00;   P0M0 = 0x00;   //设置为准双向口
       P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口
      P2M1 = 0x00;   P2M0 = 0x00;   //设置为准双向口
       P3M1 = 0x00;   P3M0 = 0x00;   //设置为准双向口
       P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口
       P5M1 = 0x00;   P5M0 = 0x00;   //设置为准双向口
       P6M1 = 0x00;   P6M0 = 0x00;   //设置为准双向口
       P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口
       
        time11_Init();
        P2 = 0x0f;


       
        while(1)
        {
                if(a>=1000)
                {
                        a=0;
                        P2=~P2;
                }
        }
}

void time11_Init()                //T11定时器只有16位自动重装模式,定时1毫秒
{
        T11CR = 0x10;                //1T模式
        T11PS = 0x00;                        //预分频:不分频
        T11H = (65536-(MAIN_Fosc/1000))/256;        //       
        T11L = (65536-(MAIN_Fosc/1000))%256;        //       
        T11CR |= 0x82;               
        EA = 1;                                //打开总中断

}

void time11() interrupt 13                // T11定时器入口为13
{
        a++;
}


请教大神们,
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:467
  • 最近打卡:2025-06-15 22:44:24
已绑定手机

19

主题

3231

回帖

5281

积分

论坛元老

积分
5281
发表于 2024-12-30 00:40:41 | 显示全部楼层
重定向定时器11的中断的汇编指令写了吧。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:159
  • 最近打卡:2025-06-16 21:06:19

16

主题

55

回帖

611

积分

高级会员

积分
611
发表于 2024-12-30 08:51:05 | 显示全部楼层
so*** 发表于 2024-12-30 00:40
重定向定时器11的中断的汇编指令写了吧。

写了,重定向不写,定时器不工作,现在定时器工作,但是定时不准
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:462
  • 最近打卡:2025-06-16 10:02:39

33

主题

2447

回帖

5168

积分

论坛元老

积分
5168
发表于 2024-12-30 09:05:27 | 显示全部楼层
不准,,适合你预期的差多少。。如果使用内部晶振,,差个1% 千分之几都是正常的,,,如果是差距很大再检查一下是否是下载设置系统频率有问题,,因为我看你用到了 这个MAIN_Fosc  宏定义。。
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:159
  • 最近打卡:2025-06-16 21:06:19

16

主题

55

回帖

611

积分

高级会员

积分
611
发表于 2024-12-30 09:45:52 | 显示全部楼层
原因找到了,就是在下载的时候,把下载软件中的 截图202412300939003897.jpg 设置成与单片机运行的频率一致,现在不明白为什么我在系统中选择的是系统时钟, 截图202412300944106931.jpg
在下载软件上面还要设置IRC的频率呢

截图202412300941281940.jpg
截图202412300943474991.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:159
  • 最近打卡:2025-06-16 21:06:19

16

主题

55

回帖

611

积分

高级会员

积分
611
发表于 2024-12-30 09:48:20 | 显示全部楼层
_奶*** 发表于 2024-12-30 09:05
不准,,适合你预期的差多少。。如果使用内部晶振,,差个1% 千分之几都是正常的,,,如果是差距很大再检 ...

谢谢,我把下载软件设置程序允许时的IRC频率那里改成单片机允许的频率就正常了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:460
  • 最近打卡:2025-06-16 07:32:07

4

主题

511

回帖

2177

积分

金牌会员

积分
2177
发表于 2024-12-30 09:54:40 | 显示全部楼层
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-17 05:11 , Processed in 0.132653 second(s), 84 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表