导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[原创]INT0 作模拟串口的收。数据经常收错,大家来看看什[risun007]

 *第35202篇: [原创]INT0 作模拟串口的收。数据经常收错,大家来看看什么原因。

  
楼 主:risun007 2005年10月21日08:55
 [原创]INT0 作模拟串口的收。数据经常收错,大家来看看什么原因。
程序如下
INT0_INTERRUPT: procedure          interrupt X0_VECT   using X0_REG_BANK;
 declare  COUNT             byte,
         cc                byte;
  
 TL2    = 020H;
 TH2    = 0FFH;          /*保证第一位是1.5bit*/
  
 TR2 = 1;        
 TF2 = 0;   
 cc  = 0; 
 do COUNT = 0 to 7; 
  TF2    = 0;
  do while (TF2 =0); 
    SDA =not SDA;  
  end;  
  cc = shr(cc,1);
  if(RXD1 = 1)then cc = cc + 80H;   
 end;  
  
 TL2    = 0A0H;
 TH2    = 0FFH;          /*保证第一位是0.5bit*/
 TF2    = 0;
 JFQ_RX_FIFO(JFQ_RX_INP_PTR) = cc;
 JFQ_RX_INP_PTR =JFQ_RX_INP_PTR + 1;
 if JFQ_RX_INP_PTR =JFQ_RX_BUF_SIZE
  then JFQ_RX_INP_PTR =0;  
 
 do while (TF2 =0); 
  SDA =not SDA;  
 end;   
 
 TR2  = 0;
end INT0_INTERRUPT;

串口数据的开始位为0时,进入中断。然后接收数据。我分析是不是进入中断是有延时的,从而影响以后的时序


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:键盘扫描出错啊!各位大虾救我

[下一篇主题]:[求助]KEIL C6.12版本CRC程序出错,请执教