convertir letras a morse

Estimados!, estoy haciendo una radio baliza y me trabe en la parte de la conversion... les comento un poco

esta es una caja que se conecta a la entrada de microfono de un transeptor de radioaficionado y controla el PPT ( eso que se apreta para hablar)

al iniciar el sistema por primera vez te pregunta lo que queres que diga y el lapso de tiempo que puede ser 1 minuto, 5 el que uno quiera. ahora bien. para hacerlo mas sencillo por ejemplo escribo "hola mundo" y que lo diga cada 5 minutos

entonces internamente hace la conversion de "hola mundo" a puntos y rayas y mucho mas interamente a ON y OFF para prender y apagar una fincion de generador de tono que hace el bip.
Entocnes cada 5 minutos el sistema manda la señal de transmitir y modula los tonos correspondientes.

mi problema es hacer una conversion que sea del "abc" al tono corto, tono largo o punto y raya.

La plataforma que utilizo es un 8051 y lo compilo en lenguaje C y la verdad que si no saben 8051 con pic en c o solo C es lo mismo

quiero comparar 2 tablas que lo puedo hacer con un for, una tabla ya la tengo que seria esta

code unsigned char ABC[] =
{
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P',
'Q','R','S','T','U','V','W','X','Y','Z',1,2,3,4,5,6,7,8,9,0,0xff//terminador es 0xff
};

ahora me falta la otra que seria

comparar con A ._ B_.. C _._.
es facil pero quiero saber si se les ocurre como hago pra que despeus el sistema diga.. ahh es un punto tono1 es una raya tono2
y al momento de trasnmitir diga tono1 tono2 , tono2 tono1 tono1 tono1

Me explico? se que es muy simple.. pero se me cruzaron los cables y estoy medio confundido a demas de que hace bastante que no programo jeje

Bueno!, muchas gracias y feliz 2011
 
. . . es facil pero quiero saber si se les ocurre como hago pra que despeus el sistema diga.. ahh es un punto tono1 es una raya tono2
y al momento de trasnmitir diga tono1 tono2 , tono2 tono1 tono1 tono1 . . .

El codigo Morse es un sistema binario:punto (tono corto) y raya (tono largo).
La electronica digital usa un sistema binario: 0 y 1.

Si esa explicacion no te da la idea, estas en la olla.

:cool:
 
El codigo Morse es un sistema binario:punto (tono corto) y raya (tono largo).
La electronica digital usa un sistema binario: 0 y 1.

Si esa explicacion no te da la idea, estas en la olla.

:cool:

noo noo, entendiste cualquier cosa,... o me exprese mal
yo no tengo problemas con el morse, puedo escuchar e interpretar al igual que puedo transmitir un comunicado sin mayores dificultades.
El problema es con hacer una lista de que cada letra corresponde a un punto y cual a una raya.

queria hacer una tabla, lo del arreglo ese no me sirvio.. o mejor dicho es muy complicado al pepe.

la tabla seria asi,, la columna de la is las letras y la de la derecha los . y _

despues lo veo bien y te muestro como me quedo..

Saludos!
 
yo lo que haria es una funcion para cada letra, osea que cada funcion contenga el grupo del pulsaciones que tengas que hacer, entonces con un switch analizas caracter a caracter y vas emitiendo asi
 
yo lo que haria es una funcion para cada letra, osea que cada funcion contenga el grupo del pulsaciones que tengas que hacer, entonces con un switch analizas caracter a caracter y vas emitiendo asi

Que tal Diegomx, si, yo lo que pretendia hacer en un momento era una funcion de 3 lineas que lo analiza y saque todo de una tabla y listo... pero la verdad.. te soy franco.. me re comio el coco y no me salio.. llegue a 3 for uno dentro del otro.. pero nah.. no va.

asi que ahora estoy como me indicaste y listo!..

Muchas gracias! cuando lo termine lo subo!

73
 
EDIT: pensé que querías convertir de morse a letras, si necesitás eso se puede hacer mucho más sencillo: Una tabla en memoria de código que sea así: char tabla[5][32]; El primer índice sería la cantidad de dígitos, el segundo sería el código de los dígitos (transformando . en 0 y - en 1 binario).
 
Atrás
Arriba