各位好,我在用TI的msc1210单片机,程序需要用到一个比较大单位的时间定时,我选择了秒定时器,用中断方式。
/*配置程序*/ USEC=0xa; //配置1us时钟 MSECH=0x2b; //配置1ms时钟 MSECL=0x31; HMSEC=0x63; //配置100ms时钟 SECINT=0x63; //配置10s中断间隔 PDCON|=0x7d; //Enable system timer AIE|=0x80; //Enable second interrupt EICON|=0x20; //Global enable for auxilary interrupt
/*中断程序*/ void second_ISR() interrupt 6 { SBUF0=0x67; EICON&=0xef; //清中断标记 }
定时器配置为10秒钟触发一次中断,中断程序里面向串口发送一个字符。结果发现程序不断的往串口发送字符,根本不能达到10秒钟定时的效果。我估计是中断程序里面没有完整清除中断标记,导致中断退出后继续不断地执行中断程序。但是具体遗漏了哪些动作,又找不出来。不知道有没有用过这方面应用的朋友指点一下。 |