ImagenImagenImagenImagen
Hazte Socio (El Foro siempre Gratis)
Paga con Tarjetas+ Info www.arde.cc/socios

Problema con codigo para Micro Atmel

Foro para postear los temas de ensamblador

Moderador: Junta Directiva

Responder
Avatar de Usuario
cloud_g
Novato
Novato
Mensajes: 16
Registrado: Mié Dic 12, 2007 11:57 am

Problema con codigo para Micro Atmel

Mensaje por cloud_g » Mié Jun 18, 2008 10:16 pm

Hola a todos,

Estoy en la tediosa tarea de controlar un robot gobernado por un micro atmel a través de un pc, y usando 2 radiomodems.
Para la programación del micro (un 89c52 de atmel) uso el programa Keil.
Os resumo brevemente mi problema.
En la hoja de características del radiomodem, viene la forma de configurarlo mediante comandos, bien mediante un programa específico, o bien a través del microcontrolador. Mi caso es el segundo, el del microcontrolador.
Os pongo unos cuantos ejemplos de las distintas cosas que se pueden configurar, y los comandos asociados:

Easy-Radio Configuration Command Set
The programming software sends ‘Text Commands’ to the modules and this action can be performed by terminal software or the host’s Microcontroller using the following list of commands:



RF Power Output
Sets output power on a channel.
Warning! This level will be set to the default setting when the frequency is changed or reset via a Channel command.
ER_CMD#P0 1mW
ER_CMD#P1 2Mw
ER_CMD#P2 3mW
ER_CMD#P3 4mW
ER_CMD#P4 5mW
ER_CMD#P5 6mW
ER_CMD#P? Get Power Value The module replies with the power value. eg:
ER_CMD#P9
No ACK is required.

To successfully send a command do the following:
1. Send Command from host: e.g. ER_CMD#U5 (Set UART BAUD to 38400)
2. In the case of a TRS/RS:
o Wait for echo of command from module. e.g. ER_CMD#U5
In the case of a TS:
o Wait 20mS
3. Send the ASCII string from the host: ACK

The commands should be sent exactly as shown (case sensitive) with no spaces between characters. The ACK command is sent as three ASCII characters, ACK in sequence. ‘A’’C’’K’ .
Note that the TS (transmitter) devices send data ‘over air’ as they are not equipped with a serial data out or handshake pins. This takes approximately 20mS and time should be taken in to account before sending the ‘ACK’ sequence


Así, si por ejemplo quiero configurar el radiomodem para que transmita con 5mW de potencia, tendré que enviarle la cadena de texto ER_CMD#P4, esperar 20 ms, y enviarle la señal ACK.

Mi problema es: ¿cómo envío la cadena de texto ER_CMD#P4?
Supongamos que para enviar la cadena de texto desde el micro al radiomodem, basta con enviarla a un registro cualquiera, por ejemplo a R0, ¿cómo le paso la cadena de texto desde el micro al radiomodem, poniendo MOV R0, #’ER_CMD#P4’ ?
Así da fallo, ¿sabeis alguno cómo hacerlo? ¿Cómo se puede guardar una cadena de caracteres para pasarla al radiomodem?

Gracias, y un saludo



BoOpS
Administrador
Administrador
Mensajes: 1812
Registrado: Lun Sep 19, 2005 7:29 pm
Nombre: Javier

Re: Problema con codigo para Micro Atmel

Mensaje por BoOpS » Mié Jun 18, 2008 10:20 pm

cloud_g, ¿puedes crear un array con la cadena?

Aparte... ¿el radio modem es por puerto serie? Si es así tu compilador tendrá que tener una instrucción para el envío de datos. si no es así o usas ensamblador (sin hardware serie) tendrás que establecer los tiempos de comunicación e ir mandando los bits sueltos.
Mi Blog de RoBoOpS

Bastian
Usuario Avanzado
Usuario Avanzado
Mensajes: 384
Registrado: Mié Feb 13, 2008 9:29 pm
Nombre: David Carmona
Ubicación: Utiel
Contactar:

Re: Problema con codigo para Micro Atmel

Mensaje por Bastian » Jue Jun 19, 2008 12:52 am

Hola!

Imagino que utilizas el puerto serie para comunicar con el radio modem.... si es asi y estas utilizando el Keil tienes dos opciones:

Programa en C: comando printf.
Ensamblador: Tendras que enviar los caracteres uno a uno a través del registro SBUF


salu2!
Existen 10 tipos de personas...
los que saben binario y los que no.

El conocimiento es un arma poderosa... Aprende!!!


Mi blog: Robotica Lúdica Pingubot

Avatar de Usuario
cloud_g
Novato
Novato
Mensajes: 16
Registrado: Mié Dic 12, 2007 11:57 am

Re: Problema con codigo para Micro Atmel

Mensaje por cloud_g » Jue Jun 19, 2008 10:38 am

Solo una cosa, recuerdo que hice una práctica con un LCD, y para que mostrase distintos mensajes en pantalla, usaba la directiva (creo que se llama directiva) DB 'Mensaje' Posición_de_Memoria, de forma que podía almacenar un String a partir de una posición en la memoria del microcontrolador. ¿No se puede hacer aquí igual?
Es que en la hoja de características del radiomodem, dice que se le envíe cada comando de configuración, y se esperen 20ms antes de enviarle un ACK. No sé si admitirá que se le envíen los caracteres por separado, no sé si me explico.

Un saludo!

Avatar de Usuario
Luison
Usuario de baja
Mensajes: 493
Registrado: Lun Dic 24, 2007 12:03 pm
Ubicación: Guecho

Re: Problema con codigo para Micro Atmel

Mensaje por Luison » Jue Jun 19, 2008 12:30 pm

hombre, el easyradio fue uno de los radiomodem que miré, pero no me hacía mucha gracia... aún así, la configuración se hace por puerto serie, osea, que tienes que abrir el puerto serie de tu micro y conectarlo al easyradio, una vez hecho ésto, empezar a configurarlo... o por lo menos eso creo.

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado