亚洲色资源,亚洲一本到日韩东京热,伊人久久东京热影视,国产视频一二三,日韩无码第九页,亚洲日韩一页精品发布,国产主播在线看喷水,午夜一区二区三区在线,操碰在线观看视频

知道解決
HOLTEK 主I2C的源程序代碼
瀏覽207次2018-03-13 14:24

調(diào)用的代碼
            case C_READ+C_I2C:
                return_buf[2] = comm_buf[4];    // 
                read(comm_buf[3],comm_buf[4],&return_buf[3]);
                break;
                
            case C_WRITE+C_I2C:
                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);


 
 void i2c_start()
 {
    SCL=1;delay_5us();
    SDA=1;delay_5us();
    SDA=0;delay_5us();delay_5us();
    SCL=0;delay_5us();
 }

 
 void i2c_stop()
 {
    SCL=0; 
    SDA=0;delay_5us();
    SCL=1;delay_5us();
    SDA=1;delay_5us();
 }

 
 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;
 }

 
 void SendNotAck(void)
 {
    SDA=1 ;
    delay_5us();
    SCL=1 ;
    delay_5us();
    SCL=0;
 }

 
 void SendtAck(void)
 {
    SDA=0 ;
    delay_5us();
    SCL=1 ;
    delay_5us();
    SCL=0;
 }

 
 void i2c_writ2(uchar dat)
 {
    uchar i;
    for(i=0;i<8;i++)
    {
 //        SDA=1;
        if((dat&0x80)==0x00) SDA=0;
        else SDA=1;
        SCL=1;delay_5us();SCL=0;
        dat<<=1;
    }
    SDA=1;
    SCL=1;delay_5us();
    SCL=0;delay_5us();
 }

 
 unsigned char cread(uchar addr)
 {
     unsigned char i;
     i2c_start();
     i2c_writ2(Chip_ADDR);        // Write
     i2c_writ2(addr);
     i2c_start();                // Start
     i2c_writ2(CHIP_ADDR+1);        // Read
     i = i2c_rea2(0);
     i2c_stop();
     delay(10);
     return(i);
 }

 
 void cwrite(uchar addr,uchar dat)
 {
     i2c_start();
     i2c_writ2(CHIP_ADDR);        // Write
     i2c_writ2(addr);
     i2c_writ2(dat);
     i2c_stop();
     delay(30);
 }

 
 void read(uchar addr, uchar num, uchar * buf)
 {
     i2c_start();
     i2c_writ2(CHIP_ADDR);        // Write
     i2c_writ2(addr);
     i2c_start();                // Start
     i2c_writ2(CHIP_ADDR+1);        // Read
     for( ; num>0 ; num--)        // 個數(shù)
     {
         *buf++ = i2c_rea2(1);    // 讀
     }
     i2c_stop();
     delay(10);
 }

 
 void write(uchar addr, uchar num,uchar * buf)
 {
     i2c_start();
     i2c_writ2(CHIP_ADDR);        // Write
     i2c_writ2(addr);
     for( ; num>0 ; num--)        // 個數(shù)
     {
         i2c_writ2(*buf++);        // 寫
     }
     i2c_stop();
     delay(30);
 }

 
 uchar i2c_rea2(bit ack)
 {
     uchar i,j;
     j=0x00;
     SDA=1;
     for(i=0;i<8;i++)
     {
         SCL=1;
         j=j<<1;
         if(SDA) j|=0x01;
         SCL=0;delay_5us();
     }
     if(ack) SDA=0;
     SCL=1;delay_5us();
     SCL=0;delay_5us();
     return j;
 }

 
 void delay_5us()
 {
     uchar i;
     //for(i=0;i<2;i++){}
     for(i=0;i<4;i++)
     {
     }
 }

右側(cè)廣告
關于我們 | 廣告服務 | 會員服務 | 隱私申明 | 友情鏈接 | 聯(lián)系我們 | 法律顧問 | 網(wǎng)站地圖 | 百方網(wǎng)信用評價制度 (c)2008-2025 BYF All Rights Reserved
網(wǎng)絡標識
可信網(wǎng)站識
 
日土县| 虞城县| 密山市| 扶余县| 普格县| 临洮县| 会宁县| 海盐县| 阜康市| 莱西市| 佛教| 广河县| 安庆市| 富民县| 高要市| 轮台县| 松溪县| 镇坪县| 潢川县| 南部县| 伊吾县| 辉南县| 琼海市| 沛县| 大足县| 新和县| 滦平县| 云阳县| 宣威市| 银川市| 永年县| 蚌埠市| 威海市| 特克斯县| 呼玛县| 益阳市| 平泉县| 广昌县| 信丰县| 遂川县| 桐城市|