英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流
标题:
开关中断时产生的问题
[打印本页]
作者:
winnie
时间:
2009-3-28 10:52
标题:
开关中断时产生的问题
pic12f675,mplab6.30.0,hi-tech v8.01 pl3.
一共用了3个中断:tmro(计数器),tmr1(定时器),口变。
在中断程序中:口变中断且口=1时,打开计数器。计数器做指定操作,然后关闭T0IF ,T0IE 。
if(GPIF)
{
if(chang_in == 1)
{
do
{
TMR0 = tonum;
T0IE = 1;
}
while(T0IE != 1);
}
else T0IE = 0;
T0IF = 0;
GPIF = 0;
GPIE = 1;
}
if(T0IF)
{
指定操作;
T0IF = 0;
T0IE = 0;
}
我在主程序中:
在一条件下关中断 GPIF = 0; GPIE = 0; T0IF = 0; T0IE = 0;
但是在程序应用中却发现指定操作依然在操作,不知为何?
问题,我已解决:
在主程序中:在一条件下置一标志位。在中断程序中查标志位,标志位=0,进行中断操作;=1,清GPIF ,T0IF 。
作者:
winnie
时间:
2009-3-28 10:53
程序在 while(T0IE != 1);出不来了
if(chang_in == 1)
{
do
{
TMR0 = tonum;
T0IE = 1;
}
while(T0IE != 1);
改成
while(chang_in == 1)
{
TMR0 = tonum;
T0IE = 1;
}
会好一些
欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://enroobbs.com/)
Powered by Discuz! X3.2