打印

i2c为什么无法连续写????

[复制链接]
2284|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lylkr|  楼主 | 2008-6-25 12:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<pic.h>
      char i,j,k,a;
      void first()
      {
      TRISC=0xff;
      SSPADD=9;
      STAT_SMP=1;
      STAT_CKE=0;
      SSPCON=0B00111000;
      }
      void test()
      {
       SSPIF=0;
       while(SSPIF==0){;}
      }
      void cc()
      {
      SEN=1;
       test();       
       SSPBUF=0B10100000;
       while(ACKSTAT==1)
        {
         SEN=1;
          test();       
          SSPBUF=0B10100000;
       }        
       SSPBUF=j;
       test();   
      for (i=1;i<17;++i)
         {
           SSPBUF=i;
          test(); 
          j++;
           } 
        PEN=1;
       test(); 
       SSPIF=0;
           
      }
      void main()
      {
      
      first();      
      j=0b00000000;
      for (k=1;k<5;k++)
      {cc();
        for (a=1;a<200;a++) {asm("nop");}
       }
       for (i=1;i<100;i++) {;}
      SEN=1;      
      test();
      SSPBUF=0B10100000;
      test();
      SSPBUF=0B00000000;
      test();
      RSEN=1;
      test();
      SSPBUF=0B10100001;
      test();
      
      FSR=0X30;
      for (i=1;i<65;i++)
      {
      RCEN=1;
       test();
       INDF=SSPBUF;
       if (i!=64)  
       {ACKDT=0;
       ACKEN=1;} 
       else
       {ACKDT=1;
        ACKEN=1;}
       test();
        FSR++;
      }      
      PEN=1;            
      test();    
      SSPIF=0;  
      asm("nop");
     }
         
PIC16F873A  + 24C16

连续写4组16个数据,但只有第一组、第三组能够写成功,而二、 四组则无法写成功,

请帮忙看看问题在哪??

谢谢
沙发
westsfw| | 2008-6-25 13:15 | 只看该作者

j

你的j是写的地址吧,好像没变呢;还有查一下16的页大小,看是不是回绕了

使用特权

评论回复
板凳
ccxlslr| | 2008-6-25 22:16 | 只看该作者

写要有一定的时间间隔

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

20

帖子

0

粉丝