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

关于定时器问题

关于定时器问题

我想用定时器产生周期中断,在一个管脚上产生周期脉冲,但是仿真发现程序不进中断,各位大虾帮忙看下,我已经在vector里面设置了中断向量

void main(void){

DDRT=0x10;
PTT=0x00;

TSCR2  = 0x80;  //timer overflow interrupt enable
TSCR1  = 0x80;  //timer enable
TFLG2=0x00;
EnableInterrupts;
for(;;){
}
}

#pragma CODE_SEG NON_BANKED
void interrupt Int_TimerOverFlow(void)
{
   TFLG2_TOF  = 1;  //clear timer overflow flag
   PTT_PTT4=~PTT_PTT4;
}
#pragma CODE_SEG DEFAULT

[此贴子已经被作者于2005-11-21 15:23:50编辑过]

有没有设置中断允许?我用的是908.这个说明书没看过,不过都差不多.
我的程序中是在定时器中断中定义一个局部变量,如int a; 然后用a取一次控制寄存器的值就可以了.a="定时器控制寄存器";
只做参考 初学中..
砸啊砸,砸出个大芯片!
什么片子?
MC9S12NE64

#include /* common defines and macros */

#include /* derivative information */

#pragma LINK_INFO DERIVATIVE "mc9s12c32"

unsigned char tmect,tmrti,tempdt,period,duty;

volatile void ECT_Init(void)

{

TSCR1=0x80;

TSCR2=0x80;

}

void main(void)

{ /* put your own code here */

DDRA=0b00000001;

DDRB=0b00010000;

ECT_Init();

PORTA=0;

PORTB=0;

EnableInterrupts;

for(;;)

{

   if(tmect<127)

   {

      PORTB_BIT4=0;

   } else

   {

      PORTB_BIT4=1;

    }

} /* wait forever */ }

volatile void interrupt 16 ETI_Int(void)

{

    TFLG2_TOF=1;

    tmect++;

}

 

 

我是写在主程序里的,能够运行 

[此贴子已经被作者于2005-11-22 20:04:30编辑过]

没看出有什么区别,郁闷 。。。。
正在进行NE64的研究学习,欢迎和我讨论~ saga0807@hotmail.com
看看你的中断矢量地址对不对。
海纳百川  有容乃大
我和楼主是同事,我试了下,用你的片子确实可以运行,但使用我们的片子就不进中断,那位大虾能给解释下原因。
正在进行NE64的研究学习,欢迎和我讨论~ saga0807@hotmail.com
片子坏了?换块片子试试。
海纳百川  有容乃大
问题是仿真也不成啊
正在进行NE64的研究学习,欢迎和我讨论~ saga0807@hotmail.com
仿真?你是说软件仿真?软件仿真要进定时器中断的话比较麻烦,要作许多设置,不然定时器是跑不起来的。
海纳百川  有容乃大
哦,那具体怎么设置,还有有没有关于仿真设置的资料呢
正在进行NE64的研究学习,欢迎和我讨论~ saga0807@hotmail.com
CodeWarrior内置的在线帮助文件中应该有这方面的说明。
海纳百川  有容乃大
返回列表