سلام اقا من با 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; }
دیدگاه