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