Problemas com o TWI

Software e Hardware para ATMEL

Moderadores: 51, guest2003, brasilma

Problemas com o TWI

Mensagempor porcao » 17 Jun 2009 10:32

Alguém já passou por isso?
Montei um array igual de cada lado (master e slave).
Se o array for do tipo CHAR ele é enviado na boa usando Wire.send(buf). Só que não posso ter um valor zero no meio. Ele entende que é o fim do array e para a transmissão.

Então para a minha necessidade eu montei um array tipo byte.
É assim que eu envio:
void requestEvent()
{
for(int i=0; i<TAMBUFFER; i++) Wire.send(buf[i]);
}

E assim que eu tento receber:
Wire.requestFrom(1, TAMBUFFER);
i=0;
while (Wire.available ()){
buf[i]=Wire.receive();
i++;
}

O problema é que eu só recebo a primeira posição do array, o resto vem com 255.

Alguma ideia do que pode estar acontecendo? Eu precisava inicalizar o array com zeros, não queria fazer a gambiarra de inicializar com 1 e ficar subtraindo quando recebo e somando um qaundo tenho que enviar.
[]s
porcao
Nibble
 
Mensagens: 58
Registrado em: 12 Mar 2009 09:05
Localização: Santo André - SP

Mensagempor porcao » 17 Jun 2009 10:43

Mais informação.
Acabei de fazer outro teste e percebi que chega a ultima posição do array como sendo a primeira.

[]s
porcao
Nibble
 
Mensagens: 58
Registrado em: 12 Mar 2009 09:05
Localização: Santo André - SP

Mensagempor porcao » 17 Jun 2009 11:03

Acho que eu só precisava conversar com alguém, nem que seja eu mesmo!
Declarei o array como uint8_t e envio assim: Wire.send(buf,10);

Funfou :wink:
porcao
Nibble
 
Mensagens: 58
Registrado em: 12 Mar 2009 09:05
Localização: Santo André - SP

Mensagempor cassiolws » 02 Jul 2009 22:47

hehehe acontece as vezes fico assim tb dai saio tomo um café, ou chimarrão converso comigo mesmo e tudo da certo... =D
eletronic´s 666 \m/
cassiolws
Bit
 
Mensagens: 26
Registrado em: 15 Jul 2008 00:42


Voltar para AVR

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x