Comunicação serial do MSP430 via xBee Projeto de pesquisa do grupo PET Mecatrônica/BSI Orientadora: Eugênia Giancoli Jabour Bolsistas: Érica Julião Alvim, Frederico José Dias Möller, Lucas do Prado Pissolati INTRODUÇÃO Função itoa(): A comunicação serial do MSP430 pode ser feita usando as portas 1.1 e 1.2 no modo UART (universal asynchronous receiver/transmiter), os dados a serem transmitidos são antes gravados na variável, tipo char, de buffer UCA0TXBUF e os recebido são armazenados na variável UCA0RXBUF. Tendo essas variáveis o limite de um byte, a transmissão de dados de sensores, em geral valores inteiros ou de ponto flutuante (quatro bytes) precisa de algumas adaptações. Além disso, ao trabalhar usando o módulo de transmissão sem fio xBee integrado ao MSP430, os primeiros bytes de cada transmissão é perdido. Enquanto um valor char tem o tamanho de um byte, um valor inteiro, ou de ponto flutuante tem quatro. Isso é um problema quando se quer transmitir dados de sensores e esses dados devem ser transmitidos por char. Implementamos a função itoa() de modo a converter cada dígito de um valor inteiro em um char e armazená-lo em uma string. A intenção é que valores inteiros possam ser transmitidos diretamente para um programa de terminal, que converte diretamente cada valor recebido para o seu respectivo símbolo na tabela ASCII FUNÇÃO println(): Para transmitir uma série de dados de uma vez, ao invés de transmitir char a char no escopo principal do programa, implementamos uma função println, (em alusão a função de mesmo nome do Arduíno), que recebe uma string qualquer, transmite todos os seus bytes e depois envia o char “13”, indicando o fim da linha. Dentro dessa função, antes de começar a transmissão dos dados, implementamos uma espera ocupada, de modo a evitar que os primeiros bytes da transmissão fossem perdidos. Essa espera se constitui de um ciclo while, com o contador variando de 0 à 2788, com o processador operando a 1mhz. Função decompor(): Outra forma de transmitir valores int ou float é dividir seus quatros bytes e formar assim uma string com eles. O receptor deve ter uma função que reagrupe esse bytes e retorne o valor enviado. REFERÊNCIA BIBLIOGRÁFICA http://www.cplusplus.com/ reference/cstdlib/itoa/ http://processors.wiki.ti.com/index.ph p/Tips_for_using_printf http://stackoverflow.com/