日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > HOLTEK主I2C的源程序代碼

          HOLTEK主I2C的源程序代碼

          作者: 時間:2012-08-12 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://yuyingmama.com.cn/article/171051.htm

          調(diào)用的
          case C_READ+C_:
          return_buf[2] = comm_buf[4]; //
          read(comm_buf[3],comm_buf[4],return_buf[3]);
          break;

          case C_WRITE+C_:
          return_buf[2] = 0;
          write(comm_buf[3],comm_buf[4],comm_buf[5]);
          break;


          主I2C的

          #define CHIP_ADDR 0x78

          unsigned char cread(uchar addr);
          void cwrite(uchar addr,uchar dat);
          void read(uchar addr, uchar num, uchar * buf);
          void write(uchar addr, uchar num,uchar * buf);
          void i2c_start(void);
          void i2c_stop(void);
          uchar WaitAck(void);
          void SendNotAck(void);
          void SendtAck(void);
          void delay_5us(void);
          void delay(unsigned char num);
          void i2c_writ2(unsigned char dat);
          uchar i2c_rea2(bit ack);


          /***********************************************
          總線啟動函數(shù)
          ***********************************************/
          void i2c_start()
          {
          SCL=1;delay_5us();
          SDA=1;delay_5us();
          SDA=0;delay_5us();delay_5us();
          SCL=0;delay_5us();
          }

          /***********************************************
          總線停止函數(shù)
          ***********************************************/
          void i2c_stop()
          {
          SCL=0;
          SDA=0;delay_5us();
          SCL=1;delay_5us();
          SDA=1;delay_5us();
          }

          /***********************************************
          I2C總線發(fā)送數(shù)據(jù)時的ACK應(yīng)答
          ***********************************************/
          uchar WaitAck(void)
          {
          uchar errtime=255; //因故障接收方無ACK 超時值為255
          SDA=1 ;delay_5us();
          SCL=1 ;delay_5us();
          while(SDA)
          {
          if (--errtime == 0)
          {
          i2c_stop();
          return 0;
          }
          }
          SCL=0;
          return 1;
          }

          /***********************************************
          I2C總線接收數(shù)據(jù)時的NO ACK應(yīng)答
          ***********************************************/
          void SendNotAck(void)
          {
          SDA=1 ;
          delay_5us();
          SCL=1 ;
          delay_5us();
          SCL=0;
          }

          /***********************************************
          I2C總線接收數(shù)據(jù)時的ACK應(yīng)答
          ***********************************************/
          void SendtAck(void)
          {
          SDA=0 ;
          delay_5us();
          SCL=1 ;
          delay_5us();
          SCL=0;
          }

          /***********************************************
          寫1個字節(jié)的函數(shù)
          ***********************************************/
          void i2c_writ2(uchar dat)
          {
          uchar i;
          for(i=0;i8;i++)
          {
          // SDA=1;
          if((dat0x80)==0x00) SDA=0;
          else SDA=1;
          SCL=1;delay_5us();SCL=0;
          dat=1;
          }
          SDA=1;
          SCL=1;delay_5us();
          SCL=0;delay_5us();
          }


          上一頁 1 2 下一頁

          關(guān)鍵詞: 代碼 源程序 I2C HOLTEK

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉