Programación Específica > Microcontroladores

 Identificar Un Caracter Recivido Via Usart

(1/2) > >>

Mars:
Holaa!!

Soy nuevo en el foro aunque llevo unos dias leyendolo. Este es mi primer post!

El problema que tengo es que tengo que recibir un caracter enviado desde un PC via serie RS232 por el interfaz USART. Una vez recibido el caracter, tengo que identificar cual es, ya que segun esto el programa reaalizara una tarea u otra.

 Lo que no se muy bien es como hacer esta identificacion, supongo que se tendra que hacer por comparación, pero no se como.

Si alguien tiene alguna idea o algun codigo que lo haga me resualtaria de gran ayuda...soy bastante nuevo en este tema.

Muchas gracias a todos y un saludo!!!

Marçal

Kain589:
Supongo que programas en ensamblador, la comparacion la puedes realizar haciendo una resta entre el caracter recibido y con el que quieres comparar y despues comprobar si el resultado es cero.
Esto puede ser util de cara a comparar entre unos pocos caracteres, si son muchos tendrias que intentar hacer algo con el direccionamiento pero este tema me suena solo de haber leido algo no se como podrias hacerlo, o hacerlo a lo bestia realizando cada resta y comprobando si es cero con cada caracter posible

Mars:
Hola

Me olvidé decirlo, pero si, programo en ensamblador. Pues muchas gracias, la verdad esq creo que este sistema me va a ser util. Solo tengo que recibir un caracter y diferenciarlo entre tres posibles opciones, asi que al no ser muchas creo que sera un buen sistema!

De todos modos, si alguien tiene alguna otra opcion que me lo diga.

Muchas gracias!

Mars:
Ahora me surge otra duda...

Una vez hecha la resta, cual es la mejor manera de comprovar si el resultado es cero? hay que comprovar bit a bit, o hay alguna forma de hacerlo con el registro entero??

saludos

Marçal

jpaler:
con la instruccion btfsc f,b se salta si el bit b del registro f es cero.

sugerencia:
una ves conocido el lenguaje c, no me quedaron mas
ganas de seguir rompiendome el coco con el asm.
en c seria:
if (letra=='A')
  ...
else if (letra=='B')
  ...

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa