conclusao se trabalho com as rotinas de escrita e depois leitura separadamente ele funcioona bem, mas se utilizo a rotina de escrever e logo de seguida utilizo a rotina de leitura ele encrava na rotina de leitura, mais precisamente logo depois de eu dar o startbit, e quando mando o bit de controle da 24c02c ele encrava nessa rotina porque a memoria está sempre a mandar um ack (ack este que me diz para repetir , porque ouve problemas no ultimo byte enviado) e entao ele reenvia o ultimo byte e a memoria torna a mandar um ack que me manda repetir o ultimo byte e nao sai disto.
Já resolveste esta questão ?
Essas já me aconteceram.
Resolvi tratando das comunicações separadamente. Sempre que faço uma leitura, gero logo um NOT-ACK e um STOP. Assim, posso recomeçar a sÃncronização.
O chip ESCRAVO tem que detectar que o MESTRE já não quer falar com ele. É muito importante. Se não for assim, o ESCRAVO vai estar constantemente a deitar a linha abaixo com envios de dados.
Pode atrasar em milisegundos as comunicações, mas eu descobri que é sempre vantajoso comunicar por blocos: START-DADOS-NOTACK-STOP, START-DADOS-NOTACK-STOP.
Isto quando se trata de um só byte a ler. Se forem varios a ler ou escrever, faço: START-DADOS x N (com ACK em todos) -NOTACK no ultimo - STOP.
Fiz-me entender? às vezes é dificil explicar isto por escrito
