This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

IIC twi_master_transfer

I will code 1 to 2, however, was not successful

code1:

u8 IICwriteBytes(u8 dev, u8 reg, u8 length, u8* data){  
    u8 count = 0;
    IIC_Start();
    IIC_Send_Byte(dev);	 
    IIC_Wait_Ack();
    IIC_Send_Byte(reg);  
    IIC_Wait_Ack();	  
    
    for(count=0;count<length;count++){
        IIC_Send_Byte(data[count]); 
        IIC_Wait_Ack(); 
    }
    IIC_Stop();

    return 1; //status == 0;
}

code2:

uint8_t IICwriteBytes(uint8_t dev, uint8_t reg, uint8_t length, uint8_t *data){

    bool transfer_succeeded;

    transfer_succeeded = twi_master_transfer(dev, &reg, 1, TWI_DONT_ISSUE_STOP);
    transfer_succeeded &= twi_master_transfer(dev, data, length, TWI_ISSUE_STOP);
    return transfer_succeeded;
}
Related