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

BDM在线仿真和单板运行之间的问题

同问,我也遇到和你相同的情况,感觉硬件应该问题,因为显示和语音在单板下都能正常工作,只是定时器开启后,比如输入捕捉和TC0操作时,BDM下一切正常,但单板下却出现问题。
多谢斑竹的回答,芯片为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;
}
进过测试,发现中断能进去,在BDM模式下,读到的get_data值正确,但普通模式下读不到其值。
我要读17个脉冲数,其中第一个脉冲是同步帧,2ms同步信号结束后读16位数据,TCRE位操作时为了将TCNT复位,当第一个同步帧到来时,肯定会让定时器溢出,所以,我只要判断定时器是否溢出就能获得同步信号,这样程序比较方便,当然其他方法也有。
返回列表