- UID
- 802935
|
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.
谢谢! |
|