求教!!红外控制可控硅移相调光灯 按键时灯会灭一下 这是怎么回事???(急!)

2020-02-09 09:21发布

void interrupt ISR()
{
if(T0IF==1)      
  {           
   T0IF = 0;         //清中断标志
   。。。。。。。
   }


    if(RAIF==1)
     {
     RAIF=0;
   RA0=RA0;
    start_flag=1;

     }

  if(INTF==1)   
  {        
       INTF=0;
        。。。。用于接受红外线的外中断,解码
  }

void main
{
while(1)
{
.....用于控制调光等 50HZ

}

}


问题就是每次接收到遥控器的信号,按键时灯会灭一下,我想是外中断引起的,但是RAIF电平中断和计数中断没有影响啊,这是为什么呢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
surf_131
2020-02-09 13:30

(原文件名:883INT.JPG)

这个PIC16F887的中断源里面没有RAIF。想必是个更低档次的型号了?
RA0=RA0;
start_flag=1;
这两句,RA0若是按键中断源,则TRISA0就该是1,也就是输入态。前句因此不能有效果。
后一句,这个标志为1会引起什么来就要lz自己分析了。

可控硅调光的灯,该是白炽灯吧?能够感觉到灯灭,那中断的时间一般不止一两个正弦周期。可能是连续几个半波都没有触发信号。请先将人工按键的中断临时取消,用一个缓慢的周期来逐渐调亮调暗灯光,再用按键响应来控制一个led(PWM方式)。这两样都正常就说明软件没有问题,要查硬件了。

中断的排列次序跟找到中断源需要的时间有关,越排列前面,搜索时间越少。因此要把人工按键的中断向后排。

一周热门 更多>