Página 1 de 1

Dúvidas com o módulo UART

MensagemEnviado: 12 Jul 2007 09:16
por Ricardo_Franco
Ola Senhores.
Tenho duas dúvidas relativas à UART.

1-) A UART utiliza o parâmetro “Command Terminator” para determinar o termino do comando, mas como eu faria para realizar um ECO do comando para um terminal do Windows? Ou seja, para cada caractere enviado pelo usuário, o uC retornaria o caractere antes do “Command Terminator”.

2-) Com faço para utilizar a interrupção da serial, quando ela receber um comando completo ele então execute uma rotina?

Obrigado

PS: Estou programando em C, para o PSoC Designer com o CY8C29466.

interrupção do Rx do UART

MensagemEnviado: 18 Jul 2007 09:08
por thairone
e ai alguém já descobriu alguma coisa sobre como tratar essa interrupção em 'C' ?

MensagemEnviado: 23 Jul 2007 13:07
por mrtabs
entao, quando precisei fazer isso, eu tratei a interrupcao em assembly. Nesse asm, eu vou tratando cada caracter, ate que qdo uma mensagem interira eh formada, eu dou um "call" numa rotina escrita em C, pra fazero que eu quiser...se for tratar a interrupcao em linguagem C, o prog fica muiiito lerdo...nao recomendo...

vc pode tb fazer assim (em assembly), cada caracter que receber, vc salva num buffer e verifica se ele eh o seu terminador (um '\n', por exemplo)...se for, vc da o call da rotina, senao continua...


falow

MensagemEnviado: 24 Jul 2007 11:02
por andre_luis
Ricardo,

Se bem entendi, voce gostaria de usar uma rotina para a recepção de strings, análogo à função de envio, printf, correto ?

Bom, primeiramente eu desaconselho usar essas bibliotecas standard do C, porque elas consomem muito tempo em loops fechados de espera.

Uma alternativa que eu já usei no Blackfin ( que tinha velocidade de sobra pra isso ), foi usar rotinas de comparação de strings - nao me recordo exatamente qual - para verificar o comando recebido.


+++

MensagemEnviado: 29 Jul 2007 22:40
por Ricardo_Franco
Ola Senhores.
Se bem entendi, voce gostaria de usar uma rotina para a recepção de strings, análogo à função de envio, printf, correto ?


Não é bem isso...
O módulo UART do PSoC trata as strings que chegam pela serial como um comando, logo elas contem parâmetros (sub-strings separadas pelo caractere 32 (space)) e uma condição de fim de comando "Command Terminator". esta geralmente o caractere 13 (CR).
Bom eu queria fazer um ECO de CADA caractere que chega e não apenas quando recebo o command terminator.

MensagemEnviado: 30 Jul 2007 14:54
por mrtabs
copia o valor recebido para o registrador de transmissao...
tem q fazer um loop para verificar se o flag de transmissao ja terminou de transmitir...