首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

请高手指点关于模数向下计数器的问题

请高手指点关于模数向下计数器的问题

我用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
要拥有必先懂失去总接受
为什么没有高手指点呢?我很急啊!
请哪位高手指点一下
谢谢了!!
要拥有必先懂失去总接受
那怎么办呢?我要采集CMOS的图象数据,中断周期如果长的话,就采不了那么多个点了啊.
怎么办呢??请指点啊
要拥有必先懂失去总接受
返回列表