各位大侠版主:
我用的是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亮,按一下复位键就又能正常运行了,不知道这是什么原因!
急切盼望各位大侠伸出援助之手!
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |