智能车制作

标题: 帮忙看看~~~谢谢 定时器中断 [打印本页]

作者: 数学特好    时间: 2010-4-7 10:43
标题: 帮忙看看~~~谢谢 定时器中断
我编了一个PA定时器中断的程序,为了测速信号的收集,但是编完之后,用BDM下到单片机里面的时候 用手摸一下27引脚,即PT7,18号中断进入,但是用函数发生器给27引脚信号却反而不能进入中断了。这是怎么回事?应该不是单片机的问题,我试了两块单片机了!求高人解答,很头疼!下面是我的程序~
#include <hidef.h>      /* common defines and macros */
#include <MC9S12XS128.h>     /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xs128"

//*****************************setup clock***************************************************//
void PLL_Init(void)
{
  REFDV=1;
  SYNR=2;
  while (!(CRGFLG&0x08));
  CLKSEL=0X80;
}  //make clock=24MHZ
void delay (int x)
{ int a,b;
  for (a=x;a>0;a--)
    for (b=1000;b>0;b--)  ;
}
//****************************定时器使能**************************************************//
void Time_init(void)
  {
    TIOS=0x00;
    TSCR1=0x80;
    TCTL4=0X01;//上升沿捕捉
    PACTL=0X55;//使用PACLK作为计数时钟,且不允许溢出中断
   
  }
  


//******************************MAIN*******************************************************//
void main(void)                             
{
  DisableInterrupts;                                                               
  DDRE=0xFF;
  PORTE_PE5=1;
  PORTE_PE6=1;
  PLL_Init();
  Time_init();
  EnableInterrupts;
  for (;;)
  {
   
  }
}
//**************************定时器中断入口*************************************************
#pragma CODE_SEG  NON_BANKED

   interrupt 18 void Time_Catch(void)
  {
  DisableInterrupts;
  if (PACNT%10==0)
  {
  PORTE_PE5=0;
  PACNT=0;
  delay (500);
  }
  PAFLG|=0x02;    //clear PAOVF  
  PORTE_PE5=1;
  
  EnableInterrupts;
  
   }   

   
   #pragma CODE_SEG DEFAULT
作者: 数学特好    时间: 2010-4-7 18:07
怎么没人啊·~~~
作者: 夜色里的幽魂    时间: 2010-4-7 22:10
函数发生器是什么波形输出?
作者: 786892880    时间: 2010-4-8 00:05
本帖最后由 786892880 于 2010-4-8 00:07 编辑

lz的意思是不是用手摸单片机pt7引脚就可以进入中断,但是用函数发生器就进入不了,是吧?你用示波器看下函数发生器的波形是不是偏离了,如果是那就危险了。测速建议你参照wj的做法:http://www.znczz.com/thread-859-1-2.html




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2