• Domingo 22 de Diciembre de 2024, 06:20

Autor Tema:  Identificar Un Caracter Recivido Via Usart  (Leído 2282 veces)

Mars

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Identificar Un Caracter Recivido Via Usart
« en: Lunes 10 de Abril de 2006, 22:23 »
0
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

  • Miembro activo
  • **
  • Mensajes: 53
    • Ver Perfil
Re: Identificar Un Caracter Recivido Via Usart
« Respuesta #1 en: Martes 11 de Abril de 2006, 00:15 »
0
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

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Identificar Un Caracter Recivido Via Usart
« Respuesta #2 en: Martes 11 de Abril de 2006, 10:51 »
0
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

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Identificar Un Caracter Recivido Via Usart
« Respuesta #3 en: Miércoles 19 de Abril de 2006, 12:57 »
0
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

  • Miembro MUY activo
  • ***
  • Mensajes: 479
    • Ver Perfil
Re: Identificar Un Caracter Recivido Via Usart
« Respuesta #4 en: Miércoles 19 de Abril de 2006, 20:07 »
0
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')
  ...

Toph

  • Moderador
  • ******
  • Mensajes: 420
  • Nacionalidad: sv
    • Ver Perfil
    • http://www.electronicayotros.blogspot.com/
Re: Identificar Un Caracter Recivido Via Usart
« Respuesta #5 en: Jueves 20 de Abril de 2006, 22:31 »
0
Citar
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??

debes utilizar la bandera Z del registro STATUS, que se pone a 1 si el resultado de una operacion es cero

 :) yo no utilizo resta para hacer las comparaciones, sino la funcion xor asi  :comp: :

Código: Text
  1. movlw 0x45&#59;supongamos que quiero saber si el numero es 45
  2. bcf STATUS,2&#59;borro la bandera Z (que indica si una operacion es cero)
  3. xorwf NUM,W&#59;realiza la funcion xor, si el numero es 45 da cero
  4. btfss STATUS,2&#59;verifica si se puso la bandera Z, si fue asi salta a la rutina igual
  5. goto DESIGUAL
  6. goto IGUAL
  7.  

espero te sirva  :)
saludos :hola:
Por favor leer esto antes de postear. Gracias
NO alimenten al TROLL y morirá
¿Querés ayudar?, pues doná comida gratis con un simple clic aqui ,sin trucos
photobucket , Google , wine y cutepdf Rock!!!


programacion,c,c++,
Microcontroladores,java,linux,videojuegos,
,.NET,asm,codigo
por favor este 2012 que sea

Dextrom

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Identificar Un Caracter Recivido Via Usart
« Respuesta #6 en: Lunes 24 de Abril de 2006, 20:10 »
0
La mejor forma de saber si un dato es igual a otro es  como dice Tania  D  con su ejemplo publicado aqui, verificando en Z del estatus (bit 2 )  , otra es usando xor en ves de la resta ! es casi lo mismo.