⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hwi2c.lst

📁 世纪民生公司的带网络功能的单片机CS6209开发http服务器的演示源代码。
💻 LST
📖 第 1 页 / 共 2 页
字号:
 193   1          I2C_TXdata=addr_H;
 194   1          wait_ack();
 195   1      
 196   1      
 197   1          //==Send low byte
 198   1          I2C_CONdata=I2Cspeed|0X03;
 199   1          I2C_TXdata=addr_L;
 200   1          wait_ack();
 201   1      
 202   1      
 203   1          //Send start again
 204   1          I2C_CONdata=I2Cspeed|0X13;
 205   1          I2C_TXdata=0xa0+1;
 206   1          wait_ack();
 207   1      
 208   1      
 209   1          I2C_CONdata=I2Cspeed|0X07;  //receive,no ack(NACK), CLEAR
 210   1          wait_data_ready();
 211   1      
 212   1      
 213   1          ret_avl= I2C_RXdata;
 214   1      
 215   1          I2C_CONdata=I2Cspeed|0X0a;           // STOP
 216   1          wait_stop_ready();
 217   1      
 218   1              //PORTB_EN=tmp;
 219   1          return (ret_avl);
 220   1      } 
*** WARNING C280 IN LINE 172 OF ..\..\LIB\HWI2C.C: 'tmp': unreferenced local variable
 221          
 222          char c256_pageread(unsigned int src_addr,unsigned char *des_addr,unsigned int len)
 223          {
 224   1              unsigned char addr_L, addr_H;
 225   1              unsigned int i=0;
 226   1              unsigned char *ptr;
 227   1              unsigned char tmp,ready=0;
 228   1      #if 1
 229   1              ptr=des_addr;
 230   1              for (i=0;i<len;i++)
 231   1                      ptr[i]=c256_byteread(src_addr+i);
 232   1              return 1;
 233   1      #else
              //printf("\npageread");
                      ptr=des_addr;
                      tmp=PORTB_EN;
                      PORTB_EN=0;
C51 COMPILER V7.50   HWI2C                                                                 10/12/2006 15:31:41 PAGE 5   

              
                      I2Cspeed=EEP_I2C_SPEED;
                  I2C_CONdata=I2Cspeed|0xa;
                  addr_H = (unsigned char)(src_addr >> 8);
                  addr_L = (unsigned char)src_addr ;
              
                      ready=0;
              
                      while ((!ready)&&(i<1000))
                      {
                      I2C_CONdata=I2Cspeed|0X13;   //Send Start
                          I2C_TXdata=0xa0;  //eeprom ID
                      ready=wait_ack();
                              i++;
                      }
              
                      //printf("\nPORTB=%1bx",PORTB);
                      if (!ready)
                              return 0;
              
                  //Send address
              
                  //==Send high byte
                  I2C_CONdata=I2Cspeed|0X03;
                  I2C_TXdata=addr_H;
                  if (!wait_ack())
                              return 0;
              
                  //==Send low byte
                  I2C_CONdata=I2Cspeed|0X03;
                  I2C_TXdata=addr_L;
                  if (!wait_ack())
                              return 0;
              
                  //Send start again
                  I2C_CONdata=I2Cspeed|0X13;
                  I2C_TXdata=0xa0+1;
                  if (!wait_ack())
                              return 0;
                      for (i=0;i<len-1;i++)
                      {
                      I2C_CONdata=I2Cspeed|0X05;  //receive,ack(ACK), CLEAR
                                      wait_data_ready();
                              ptr[i] = I2C_RXdata;
                      }
              
                      I2C_CONdata=I2Cspeed|0X07;  //receive,no ack(NACK), CLEAR
                      wait_data_ready();
                      ptr[len-1] = I2C_RXdata;
              
              
                  I2C_CONdata=I2Cspeed|0X0a;           // STOP
                  if (!wait_stop_ready())
                              return i;
              
                      PORTB_EN=tmp;
              
                  return(i);
              #endif
 297   1      }
*** WARNING C280 IN LINE 224 OF ..\..\LIB\HWI2C.C: 'addr_L': unreferenced local variable
*** WARNING C280 IN LINE 224 OF ..\..\LIB\HWI2C.C: 'addr_H': unreferenced local variable
C51 COMPILER V7.50   HWI2C                                                                 10/12/2006 15:31:41 PAGE 6   

*** WARNING C280 IN LINE 227 OF ..\..\LIB\HWI2C.C: 'tmp': unreferenced local variable
 298          
 299          char i2c_detect(unsigned char addr)
 300          {
 301   1              unsigned char ready,tmp;
 302   1              unsigned int i=0;
 303   1      
 304   1              I2Cspeed=EEP_I2C_SPEED;
 305   1          I2C_CONdata=I2Cspeed|0xa;
 306   1      
 307   1              ready=0;
 308   1              for (i=0;i<600;i++)
 309   1              {
 310   2              I2C_CONdata=I2Cspeed|0X13;   //Send Start
 311   2                  I2C_TXdata=0xa0;  //eeprom ID
 312   2              ready=wait_ack();
 313   2                      if (ready)
 314   2                              break;
 315   2              }
 316   1              if (!ready)
 317   1                      return 0;
 318   1      
 319   1          I2C_CONdata=I2Cspeed|0X0a;           // STOP
 320   1          wait_stop_ready();
 321   1      
 322   1              return 1;
 323   1      
 324   1      }
*** WARNING C280 IN LINE 299 OF ..\..\LIB\HWI2C.C: 'addr': unreferenced local variable
*** WARNING C280 IN LINE 301 OF ..\..\LIB\HWI2C.C: 'tmp': unreferenced local variable
 325          
 326          char detect_24256()
 327          {
 328   1              return i2c_detect(0xa0);
 329   1      }
 330          
 331          
 332          char wait_ack(void)
 333          {
 334   1        unsigned int i;
 335   1              for(i=0;i<WAIT_LOOP_COUNT;i++)
 336   1              {
 337   2                  if ((I2C_STAdata & 0x3)==1)
 338   2                  {
 339   3                      return 1;
 340   3                  }
 341   2              }
 342   1                      //printf("\nwait_ack fail status=%1bx",I2C_STAdata);
 343   1                      return 0;
 344   1      }
 345          
 346          
 347          char wait_stop_ready(void)
 348          {
 349   1        unsigned int i;
 350   1              for(i=0;i<WAIT_LOOP_COUNT;i++)
 351   1              {
 352   2                  if (I2C_STAdata & 0x8)
 353   2                  {
 354   3                      return 1;
 355   3                  }
 356   2              }
C51 COMPILER V7.50   HWI2C                                                                 10/12/2006 15:31:41 PAGE 7   

 357   1                      //printf("\nwait_stop_ready fail status=%1bx",I2C_STAdata);
 358   1                      return 0;
 359   1      }
 360          
 361          char wait_data_ready(void)
 362          {
 363   1        unsigned int i;
 364   1              for(i=0;i<WAIT_LOOP_COUNT;i++)
 365   1              {
 366   2                  if (I2C_STAdata & 0x1)
 367   2                  {
 368   3                      return 1;
 369   3                  }
 370   2              }
 371   1                      //printf("\nwait data ready fail status=%1bx",I2C_STAdata);
 372   1                      return 0;
 373   1      }
 374          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1029    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =      1      59
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  8 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -