Board logo

标题: 高手帮忙,莫名其妙的问题,急! [打印本页]

作者: qqxx082    时间: 2006-8-13 11:25     标题: 高手帮忙,莫名其妙的问题,急!

各位大侠版主:


    我用的是s12dg128b的片子,给PORTB4,5口分别接入高低电平,程序如下:


#include <hidef.h>      /* common defines and macros */
#include <mc9s12dg128.h>     /* derivative information */


unsigned int cross,crossTime;
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"


#pragma CODE_SEG DEFAULT
void PortInit(void){
  DDRB=0xcf;
  PORTB_BIT0=1;
  PORTB_BIT1=1;
  PORTB_BIT2=1;
  PORTB_BIT3=1; 
}


void Ten_Cross(void) {
if(PORTB_BIT4==0 && PORTB_BIT5==0) {
 cross=0;
}
if(PORTB_BIT4==1 && PORTB_BIT5==0) {
 cross=1;
}
if(PORTB_BIT4==0 && PORTB_BIT5==1) {
 cross=2;
}
if(PORTB_BIT4==1 && PORTB_BIT5==1) {
 cross=3;
}
 crossTime=2*cross+1;
 }


void main(void) {
  PortInit();
  EnableInterrupts;
  for(;;) {
   Ten_Cross();
   if(cross==0) {
     PORTB_BIT0=0;  //LED0亮
   } else if(cross==1) {
     PORTB_BIT1=0;  //LED1亮
   } else if(cross==2) {
     PORTB_BIT2=0;  //LED2亮
   } else if(cross==3) {
     PORTB_BIT3=0;  //LED3亮
   }
   /* wait forever */
 }
}


片子接上BDM时程序运行无误,LED1亮。但是拔掉BDM后运行时却是LED3亮,按一下复位键就又能正常运行了,不知道这是什么原因!


  急切盼望各位大侠伸出援助之手!


作者: hudron    时间: 2006-8-13 16:08

只要复位后能够正常运行即可以了。
插拔BDM的瞬间,CPU的运行状态是非正常的。
作者: strongchen    时间: 2006-8-14 09:33

PORTB输入端有没有上拉?
作者: mkokji    时间: 2006-8-24 09:30     标题: 你彻底拔掉BDM了吗?

由于BDM有一个BUG,如果不彻底从班子上拔掉BDM(我是说拔掉BDM和你的板子的连接)。当然你的情况不一定了。试试看吧。[em07]
作者: seuafu2005    时间: 2006-8-24 09:44

BDM有bug?不知道指的什么
BDM头连着的时候是背景调试模式,BDM拔掉是用户模式
在BDM运行时,拔掉BDM头,自然不能立刻转成用户模式,需要reset
作者: mkokji    时间: 2006-8-25 10:44     标题: 斑竹说的我理解,称为‘Bug‘或许有点过,可是...

斑竹说的我理解,如果仅仅拔掉电脑和BDM之间的USB连线,还连在板子上的BDM将会保持MCU处于reset状态。由于P&M没把这一'缺点'(或称Bug有点过份?)通知客户和field应用工程师,导致一些新用户浪费不少时间。


作者: strongchen    时间: 2006-8-25 13:40

MCU必须在复位后才能改变其运行模式,如正常单片模式、特殊单片模式等。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0