多谢斑竹的回答,芯片为S12DG128。
帮忙看下程序有问题吗,感觉在BDM模式下一切正常,但普通模式下就不能进入中断了,奇怪。
void Init_PT0_Capture()
{
TIOS=0x80; //0通道输入捕捉
TCTL4=0x01; //通道0上升沿触发
TSCR2=0X03; //8分频,用来给TCNT作时间参考
TSCR1=0x80; //Timer Enable
TIE=0X01; //初始化定时器开启
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 8 PT0_Capture(void)
{
TFLG1=0x01;
TSCR2_TCRE=1;//计数器复位允许
count++;
if(TFLG2==0x80) //定时器是否溢出
{
count=0;
get_number=0;
}
else
{
get_number=(get_number<<1)|PTT_PTT1;
if(count==16)
{
get_data=get_number;
count=0;
}
}
TFLG2=0X80;
TSCR2_TCRE=0;
} |