Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

02/01/2007 #1


MSP430
HOLA AL QUE ME RESPONDA Y FELIZ 2007
ESTOY APRENDIENDO A USAR LA MSP430
... LA CUESTION ES QUE TENGO UN V20 (CONTROL DE ASISTENCIA A TRABAJADORES) Y UNA IMPRESORA QUE IMPRIME EL TIKET DE ASISTENCIA...

PUSE UN SNIFFER ENTRE ESTOS DISPOSITIVOS PARA VER LA COMUNICACION TX/RX. aHORA QUIERO HACER UN DRIVER MONTADO EN UN MSP430 PARA LA IMPRESORA CON ESTA SECUENCIA TX/RX QUE TENGO, PERO NO SE COMO SE HACE... ALGUIEN ME PUEDE AYUDAR


GRACIAS

ADJUNTO SECUENCIA HEXADECIMAL DE TRANSMISION V20 CON IMPRESORA (RSP-350 SAMSUNG)
04/01/2007 #2


Yo intentaria asi:

Encabezado: {0D}{0A}{0D}{0A}{0D}{0A}{0D}{0A}{0D}{0A}

Mensaje: Lo mandas directo en ASCII

Final de Trama: {0D}{0A}{0D}{0A}{0D}{0A}{0D}{0A}{0D}{0A}{0D}{0A}{1 B}
{69}

Es probable que por ahi vaya un comando insertado, asi que trata de conseguir alguna documentacion de tu impresora.
05/01/2007 #3


GRACIAS, LA VERDAD TB CREO Q ES ASI... QUE LO QUE TU SEPARASTE CORRESPONDE A EL ENCABEZADO DE TRAMA Y TRAMA FINAL. ADEMAS SE QUE {20} CORRESPONDE A ESPACIOS ENTRE CARACTERES.

LO QUE ME PROPUSE HACER ES PESCAR ESTA SEÑAL EN EL MSP430, SACAR LA INFORMACION O DATA, ALMACENARLA EN UNA BASE DE DATOS Y LUEGO REENVIAR LA TRAMA ORIGINAL A LA IMPRESORA TAL CUAL ENTRO AL MSP. ENTONCES: ¿COMO PROGRAMO ESTO, COMO IDENTIFICO ESTO CON CODIGO DE PROGRAMACION LA DATA UTIL?....¿COMPARO BYTE POR BYTE PARA SABER QUE ES ENCABEZADO, FINAL O ESPACIO?...
05/01/2007 #4


No creo que debas detectar el espacio (0x20), mas bien solo tienes que detectar inicio y final... y lo puedes hacer identificando secuencias y creo que lo mas adecuado es una maquina de estados finitos...

asumiendo que todas las tramas son iguales...

Leo el primer byte y si es 0x0D avanzo al siguiente estado 1...
Leo el segundo byte y si es 0x0A avanzo al siguiente estado 2... e incremento la variable "x" (que es la cuenta el numero de veces que se ha repetido 0x0D y 0x0A)
Leo el tercer byte y si es 0x0D avanzo al estado 1...
Leo el cuarto byte y si es 0x0A avanzo al estado 2... e incremento nuevamente "x"
...
...
...
...
...
...
y asi hasta que "x" sea 5... ( osea 5 veces se repite 0x0A 0x0D ),

estando ahi solo valido que lo que recibo sea ASCII e imprimible...

cuando reciba el n byte, y si es 0x0D avanzo a otro estado
cuando reciba el n+1 byte, y si es 0x0A avanzo a otro estado e incremento una variable "y" que guarda el numero de veces que se repite 0x0D 0x0A al final de la trama...
...
...
...
...
y asi hasta que "y" valga 6, cuando esto suceda los 2 siguientes bytes tienen que valer: 0x1B y 0x69...

cuando hayas detectado esos 2 bytes, podras poner una variable llamada "tramafinalizada" o como le quieras poner y le das un valor verdadero...
05/01/2007 #5


Yo primero probaria con el hiperterminal de enviarle los datos a saco

Hay por internet algunos mas potenter que permiten assci y bin,hexadecimal....

Buscaria la tabla ASCII donde cada letra tiene un numero, por ejemplo 20 es el espacio,65 la "a", el 13 retorno de carro

Finalmente si es epson utilizan el ESC2

Finalmente para imprimer utilizas la memoria interna RAM del micro para hacer la frase y una vez completada la envias a la impresora
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.