标题:
请高手指点关于模数向下计数器的问题
[打印本页]
作者:
boluoboluomi
时间:
2007-5-28 17:10
标题:
请高手指点关于模数向下计数器的问题
我用ms9s12dg128b的模数向下计数器来实现定时发生中断的功能,系统时钟和ECT模块时钟都保持默认值,产生中断时,让PT0口输出一个脉冲.程序中将MCCNT=200时,用示波器观察每25us产生一次中断,MCCNT=100时每12.5us产生一次中断,MCCNT=50时每6.2us产生一次中断.
可是当我把MCCNT的值设定到20、10、5等时,中断间隔的时间却始终都在2.9us~3.5us左右,我不知道为什么计数器MCCNT设定的值成比例的减小,而中断的时间却不变.如果我想获得1us多一点的定时中断时间,我该怎么设定呢??
这个问题困扰了我很久
请各位高手指教啊,谢谢!!!
下面是我的程序:
#include
/* common defines and macros */
#include
/* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
//unsigned int time_count=28;
void PIM_Init(void)
{
DDRT|=0x01; //T口设置为输出
}
void main(void)
{
/* put your own code here */
PIM_Init();
PEAR_NECLK=1;
MCFLG_MCZF=1;
MCCTL|=0xC4;
MCCTL&=0xFC;
//COPCTL_RSBCK=0;
//PWMCTL_PSWAI=0;
//PWMCTL_PFRZ=0;
//TSCR1_TSWAI=0;
//TSCR1_TSFRZ=0;
ICSYS=0x00;
MCCNT=10; //MCCNT设置为10
MCCTL_FLMC=1;
INTCR_IRQEN = 0;
EnableInterrupts;
for(;;) {} /* wait forever */
}
///////////////////////////////////////////////////////////////////////////
/////中断函数///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
#pragma CODE_SEG NON_BANKED
void interrupt underflow(void)
{
MCFLG_MCZF=1; //清MCZF的中断
PTT|=0x01; //PT0输出高电平
PTT&=0xFE; //PT0输出低电平
}
#pragma CODE_SEG DEFAULT
作者:
boluoboluomi
时间:
2007-5-29 02:08
为什么没有高手指点呢?我很急啊!
请哪位高手指点一下
谢谢了!!
作者:
saserking
时间:
2007-5-29 03:34
因为单片机执行代码的速度没有那么快
响应中断的函数跳转和保存现场的指令基本上就要2,3us的时间
实际上中断发生的周期和你理论计算的相同,但中断响应的次数较少
作者:
boluoboluomi
时间:
2007-5-29 09:06
那怎么办呢?我要采集CMOS的图象数据,中断周期如果长的话,就采不了那么多个点了啊.
怎么办呢??请指点啊
作者:
saserking
时间:
2007-5-29 11:41
采图像是每行中断一次,然后不断查询
方法和原理图在智能车大赛的网站上有样例
作者:
fyhl_moto
时间:
2007-6-3 20:06
对图像传感器的数据进行采集
只能采用超频了
不然是采不到足够的点的
可以看看关于dg128b单片机是如何进行超频的
作者:
terencejia
时间:
2008-3-1 16:24
不用逐行扫描,隔行采就行
作者:
jianw007
时间:
2008-3-1 20:51
采图像是每行中断一次,然后不断查询
方法和原理图在智能车大赛的网站上有样例
********************************************************
请问智能车网站是哪一个啊?
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0