سلام اقا من با SRF08 مشکل دارم .حتتی عدد 0 هم نمی گیرم .این هم کدمه .لطفا کمک کنین .
این هم با TWI
کد:
char data1;
void read_srf08(char srf08_address,char srf08_bus_address)
{
char data;
i2c_start();
i2c_write(srf08_address);
i2c_write(srf08_bus_address);
i2c_start();
i2c_write(srf08_address|1);
data=i2c_read(0);
i2c_stop();
return data;
}
void write_srf08(char srf08_address,char srf08_bus_address,char value)
{
i2c_start();
i2c_write(srf08_address);
i2c_write(srf08_bus_address);
i2c_write(value);
i2c_stop();
}
کد:
void srf08_write(char address,char reg_address,char data)
{
TWCR=0XA4;
while (!(TWCR & 0x80));
TWDR=address;
TWCR=0X84;
while (!(TWCR & 0x80));
TWDR=reg_address;
TWCR=0X84;
while(!(TWCR & 0x80));
TWDR=data;
TWCR=0x84;
while(!(TWCR & 0x80));
TWCR=0x94;
}
int srf08_read(int address,int reg_address)
{
int data=2;
TWCR=0XA4;
while(!(TWCR & 0x80));
TWDR=address;
TWCR=0x84;
while(!(TWCR & 0x80));
TWDR=reg_address;
TWCR=0x84;
while(!(TWCR & 0x80));
TWCR=0xA4;
while(!(TWCR & 0x80));
TWDR=address+1;
TWCR=0xC4;
while(!(TWCR & 0x80));
data=TWDR;
TWCR=0x94;
return data;
}






دیدگاه