英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

标题: 进中断后出不来?? [打印本页]

作者: winnie    时间: 2009-3-20 14:13
标题: 进中断后出不来??
请教各位:串口中断通讯的程序,进中断后出不来了,是那里有问题。运行程序后LED1灭、LED2亮。通过PC机发一个数据,单片机进入中断,LED1灭、LED2亮。
出中断后应该LED1亮、LED2亮,可信号一直没来。
#include <pic.h>
#include <pic1687x.h>
__CONFIG(WDTDIS&HS&LVPDIS);   
static unsigned char data;
void sciint()
{   SPBRG=0X47;
    TXSTA=0X04;
    RCSTA=0X80;
TRISC6=1;    //将RC6,RC7设置为输入方式,对外部呈高阻状态
    TRISC7=1;    //将RC6,RC7设置为输入方式,对外部呈高阻状态
    RC3=0;       //RS485接收使能
}
void main()
{  
TRISC2=0;
TRISC1=0;
TRISC3=0;      
TRISC4=0;
sciint();
PEIE=1;
GIE=1;
RC2=1; //LED1,测试用
   while(1)
   {   CREN=1;
       TXEN=0;
       TXIE=0;
       RCIE=1;
       RC4=0;     //LED2,测试用
       RC3=0;       //RS485接收使能*/
  
    }
   
}   
static void interrupt WWF(void)
{  
       RC2=0;  //LED1,测试用
       RC4=1; //LED2,测试用
      if(i<=32767)
     {i++;}
}
作者: winnie    时间: 2009-3-20 14:13
你的个循环等待不应该放那的.你那样就一直在做那些没有必要的动作
我看你的中断是接收中断哦,如果你不读一下接受缓冲区,中断接受标志位就不能清零哦

而且你哪个

if(i<=32767)
     {i++;}    //你是做延时的吧
也是不对的,如果你第二次中断的话就没有延时拉哦,在后面最好加个i=0;




欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://www.enroobbs.com/) Powered by Discuz! X3.2