智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1748|回复: 4
打印 上一主题 下一主题

定时器定时不准确 这是为什么啊 急求

[复制链接]

2

主题

5

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
威望
185
贡献
101
兑换币
107
注册时间
2013-7-25
在线时间
38 小时
毕业学校
湖北汽车工业学院
跳转到指定楼层
1#
发表于 2013-9-19 10:58:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1贡献
#include <hidef.h>            /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
void PLL_init(void)
{
PLLCTL=0X01;
CLKSEL=0X03;
SYNR=0X02;                                 外部晶振为8M
REFDV=0X01;        //设置总线频率为24M
PLLCTL_PLLON=1;   //开启锁相环
//asm NOP;
//asm NOP;
while(!CRGFLG_LOCK);    //锁定PLL
CLKSEL_PLLSEL=1;      
}
unsigned int counter=0;
void ECT(void)
{
       TIOS_IOS0=1;          //设置通道0为输出比较
       TC0=0X00EE;          //输出比较寄存器0设置初值
       TCTL2=0X02;           //定时器控制寄存器OC0输出低电平
       TIE_C0I=1;               //允许通道0对应产生中断
       TSCR2=0X06;          //设置预分频因子为64   (记一个数用2.56us)
       TSCR1=0X80;          //定时器使能
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt   8 OC0(void)  //8为定时器通道0的中断标号
{
        TFLG1_C0F=1;         //中断发生在0通道对0通道清除标志位      
       TC0=TCNT+3906;     //进入中断的周期为10毫秒
       counter++;
       DDRA=0XFE;            //用灯检测是否进入中断
       if(counter==100)
       {
                counter=0;
                PORTA=~PORTA;
       }  
}
#pragma CODE_SEG DEFAULT
voidmain(void)
{  
       PLL_init();                  //锁相环初始化
       ECT();                        //时钟模块初始化
       DDRA=0X0E;            //设置PORTA  1--3  为输出
       PORTA=0X00;           //开灯
      
       for(;;)
       {
       EnableInterrupts;
       }
}
我用的是MC9S12D64芯片    我上面程序弄的 是 1S  为什么我在试验箱上的现象就感觉好几秒   为什么  
求大神解答

4

主题

190

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2184

优秀会员奖章活跃会员奖章在线王奖章

威望
933
贡献
591
兑换币
531
注册时间
2012-10-23
在线时间
330 小时
2#
发表于 2013-9-19 23:11:05 | 只看该作者
主线频率 还有看看是不是本身设置就错了~
回复

使用道具 举报

2

主题

5

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
威望
185
贡献
101
兑换币
107
注册时间
2013-7-25
在线时间
38 小时
毕业学校
湖北汽车工业学院
3#
 楼主| 发表于 2013-9-20 20:55:47 | 只看该作者
mirsfzrx520 发表于 2013-9-19 23:11
主线频率 还有看看是不是本身设置就错了~

我感觉没错呀,It‘s  why??
回复

使用道具 举报

5

主题

171

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3616
QQ
威望
1742
贡献
1148
兑换币
1163
注册时间
2013-8-5
在线时间
363 小时
4#
发表于 2013-9-21 12:54:53 | 只看该作者
将3906改成1875试试!
回复

使用道具 举报

4

主题

190

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2184

优秀会员奖章活跃会员奖章在线王奖章

威望
933
贡献
591
兑换币
531
注册时间
2012-10-23
在线时间
330 小时
5#
发表于 2013-9-21 13:33:07 | 只看该作者
过去了的 发表于 2013-9-20 20:55
我感觉没错呀,It‘s  why??

用示波器监控 片段的长度~
回复

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-6-16 09:46 , Processed in 0.157554 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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