Página 1 de 1

ADC e serial RS232

MensagemEnviado: 28 Jul 2009 11:20
por douglas.savian
Oi pessoal,

tenho tentado transferir o resultado da adc q tem 12 bits, mas a serial só transfere 8 bits.

Como devo proceder?
[]s

MensagemEnviado: 28 Jul 2009 12:19
por polesapart
declare a, b como variaveis de 8 bits, e como uma variavel de 16 ou mais bits, e faça algo como:

Código: Selecionar todos
a = c & 0xff;
b = (c >> 8) & 0x0f;


do valor de 12 bits, em "a" você terá os 8 bits inferiores, em "b" os 4 bits superiores (ocupando as posicoes inferiores do byte).

Transmita a depois b pela serial, ou vice versa, e reverta a operacao do outro lado, por exemplo, no receptor se voce enviou primeiro a depois b:

Código: Selecionar todos
c = recebe_serial();
c |= recebe_serial() << 8;

MensagemEnviado: 29 Jul 2009 17:08
por douglas.savian
Blz. A máscara deu certo, valeu mesmo! mas agora eu não estou conseguindo transmitir as variáveis de 8 bits pela rs232. Acho que tenho que escrevê-las diretamente no buffer, U0TXBUF, mas não sei como. Alguém sabe o que fazer?

[]s

MensagemEnviado: 30 Jul 2009 16:58
por douglas.savian
douglas.savian escreveu: Para transmitir as variáveis de 8 bits pela rs232 tenho que escrevê-las diretamente no buffer, U0TXBUF? Escrevi a rotina

if (IFG1_bit.UTXIFG0){
U0TXBUF = a;
while(!U0TCTL_bit.TXEPT);
}

e enquanto estou debuggando consigo ver na C-Spy do IAR q U0TXBUF = a, mas não consigo ver o dado escrito em TX no programa de Comunicação com a Porta Seria RComserial q baixei de www.rogercom.com

Alguma idéia?
[]s

MensagemEnviado: 31 Jul 2009 10:20
por douglas.savian
Deu certo!
Valeu polesapart.