标题:
一直想不明白这点
[打印本页]
作者:
qwaszx110
时间:
2010-5-30 11:32
标题:
一直想不明白这点
void initic(void){
TSCR1=0x90;//主定时器使能
TSCR2=0X07;//定时器溢出中断禁止,定义主定时器的计数器频率
ICSYS=0x02;//输入捕捉的保持寄存器使用
TIOS_IOS0=0;//设定通道0为输入捕捉工作方式
TCTL4=0x02;//定义通道0仅在下降沿捕捉
TIE_C0I=1;//通道0允许输入捕获中断
}
void main(void) {
initmcu();//初始化CPU,使bus clock=16M,初始化程序就不写上了
initic();
DDR1AD=0x01;//定义PAD0端口为输出
EnableInterrupts;
for(;;) {}
}
#pragma CODE_SEG NON_BANKED
void interrupt 8 ic0_int(void){
TFLG1_C0F=1;
PT1AD=0xfe;
}
我的板子上PAD0端口接有LED灯(定义PAD0方向为输出,数据位是0时LED灯才能亮),想法是在程序运行时候,用导线将芯片的引出脚PT0碰一下接地端,然后就可以进入中断了,这时候PAD0口的LED灯就会亮了,可是不知道为什么,我烧好程序后,只要一运行,不用将PAD0口碰一下接地端,LED就会自己亮了。我用单步程序调试时候,发现程序运行在main()里面的EnableInterrupts;时候,灯这时候将亮,调了一天都不知道为什么。请大家帮帮忙吧,我的板子是EVB9S12XF512,芯片是mc9s12xf512.
谢谢!
作者:
w5299263
时间:
2010-7-12 14:58
请问PT0你碰一下接地之前是高电平还是低电平?
作者:
mcu2007
时间:
2010-7-13 10:16
请教LZ是用什么IDE的 啊,可以单步运行?是CW么?
作者:
mcu2007
时间:
2010-7-13 10:44
LZ这段这样改下,
initmcu();//初始化CPU,使bus clock=16M,初始化程序就不写上了
initic();
ATDDIEN=0x0001;
DDR1AD=0x01;//定义PAD0端口为输出
EnableInterrupts;
作者:
strongchen
时间:
2010-7-15 10:21
在开中断之前,将相关的中断标志位清一下。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0