O programa para no while(!dataready); e não volta. ou seja a interrupção de dataready está com problemas.
Uma das possibilidades é que o endereço esteja errado, daí surge a dúvida pq na leitura ou escrita esta sendo somado o valo 0xa0 ao endereço?
Na leitura:
W2DAT=((devAddr+0xa0)<<1)+1;//read from slave
Na escrita:
W2DAT=((devAddr+0xa0)<<1)+0;//write
O programa para no while(!dataready); e não volta. ou seja a interrupção de dataready está com problemas. Uma das possibilidades é que o endereço esteja errado, daí surge a dúvida pq na leitura ou escrita esta sendo somado o valo 0xa0 ao endereço? Na leitura:
W2DAT=((devAddr+0xa0)<<1)+1;//read from slave
Na escrita:W2DAT=((devAddr+0xa0)<<1)+0;//write
Arquivo:
/Keil/I2C_Testes/leitura_minima_sensores/Master_with_arduino/master_code.c