UZ dálkoměr
kral.j@centrum.cz
kral.j@centrum.cz
Neděle Prosinec 16 12:52:24 CET 2007
Snad budu mít štěstí a najde se tady někdo, kdo má zkušenosti s modulem UZ dálkoměru SRF235. V dostupném popisu se píše, že se s ním pracuje stejně jako s EEPROM 24Cxx, ale přesto se mi nedaří ho zprovoznit. Předpokládám, že zápis je v pořádku, protože LEDka signalizující komunikaci při zápisu bliká. Pro čtení pak používám program, který čte jako tzv. Random Read.
uint8_t i2c_read(uint8_t address, uint8_t reg)
{
uint8_t read_data;
TWCR = 0xA4;
while(!(TWCR & 0x80));
TWDR = address;
TWCR = 0x84;
while(!(TWCR & 0x80));
TWDR = reg;
TWCR = 0x84;
while(!(TWCR & 0x80));
TWCR = 0xA4;
while(!(TWCR & 0x80));
TWDR = address+1;
TWCR = 0xC4; //tady to dělá chybu?
while(!(TWCR & 0x80));
TWCR = 0x84;
while(!(TWCR & 0x80));
read_data = TWDR;
TWCR = 0x94;
return read_data;
}
Při pokusech jsem se dostal k tomu, že při čtení se zřejmě program zastaví v místě, kde TWCR = 0xC4. Když tam tento příkaz chybí, čtu sice samozřejmě nesmysl, ale dál funguje komunikace. Ten program mám samozřejmě vyzkoušený s EEPROM a ve vzorech programů k SRF235 je prakticky totéž, ale mě to nejde. Poradí někdo? Pokusy konám na ATmega2560.
Král
Další informace o konferenci Hw-list