コード例 #1
0
ファイル: i2c.c プロジェクト: DavidJohan/Assemble-and-Animate
uint8_t i2c_read_byte(uint8_t dev, uint8_t addr){
	if(i2c_send_start()!=0) return 0;
	if(i2c_send_addr(dev,TW_WRITE)!=0) return 0;
	if(i2c_send_data(addr)!=0) return 0;
	if(i2c_send_start()!=0) return 0;
	if(i2c_send_addr(dev,TW_READ)!=0) return 0;
	uint8_t data= i2c_receive_data(0);
	i2c_send_stop();
	return data;
}	
コード例 #2
0
ファイル: i2c.c プロジェクト: DavidJohan/Assemble-and-Animate
void i2c_seq_read(uint8_t dev, uint8_t start_addr, uint8_t*buff, uint8_t len){
	int i=0;
	if(i2c_send_start()!=0) return;
	if(i2c_send_addr(dev,TW_WRITE)!=0) return;
	if(i2c_send_data(start_addr)!=0) return;
	if(i2c_send_start()!=0) return;
	if(i2c_send_addr(dev,TW_READ)!=0) return;
	for(i=0;i<len;i++)
		*buff++=i2c_receive_data((i<(len-1))?1:0); //send ack until last byte to read
	i2c_send_stop();
}
コード例 #3
0
ファイル: i2c.c プロジェクト: DavidJohan/Assemble-and-Animate
int16_t i2c_read_word(uint8_t dev, uint8_t addr){
	if(i2c_send_start()!=0) return 0;
	if(i2c_send_addr(dev,TW_WRITE)!=0) return 0;
	if(i2c_send_data(addr)!=0) return 0;
	if(i2c_send_start()!=0) return 0;
	if(i2c_send_addr(dev,TW_READ)!=0) return 0;
	uint8_t datal= i2c_receive_data(1);
	uint8_t datah= i2c_receive_data(0);
	i2c_send_stop();
	return ((datah<<8) |  datal);
}
コード例 #4
0
ファイル: i2c.c プロジェクト: DavidJohan/Assemble-and-Animate
void i2c_write_byte(uint8_t dev, uint8_t addr, uint8_t data){
	if(i2c_send_start()!=0) return;
	if(i2c_send_addr(dev,TW_WRITE)!=0) return;
	if(i2c_send_data(addr)!=0) return ;
	if(i2c_send_data(data)!=0) return;
	i2c_send_stop();
}
コード例 #5
0
ファイル: i2c.c プロジェクト: DavidJohan/Assemble-and-Animate
void i2c_write_word(uint8_t dev, uint8_t addr,uint16_t data){
	if(i2c_send_start()!=0) return;
	if(i2c_send_addr(dev,TW_WRITE)!=0) return;
	if(i2c_send_data(addr)!=0) return;
	if(i2c_send_data(data & 0xff)!=0) return;
	if(i2c_send_data(((data & 0xff00)>>8))!=0) return;
	i2c_send_stop();
}
コード例 #6
0
ファイル: c8051f040_i2c.c プロジェクト: dlts200466/density
void eep_set_addr(unsigned char slave,unsigned int addr)
{
	start();
	i2c_send_addr(slave,0);//д
	i2c_send_data(addr>>8);
	i2c_send_data((unsigned char)addr);
//	stop();
}