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

Temas similares

10/09/2011 #1


Transferir información de PIC a PIC?
Buenas tardes amigos, pido concejo a los señores de este foro jejejeje. Bueno el caso es que tengo dos pic funcionando en paralelo, uno es esclavo y el otro maestro, y hasta ahi no tengo problemas, los pic los programo en C, mi duda es si quiero que cada cierto tiempo el PIC maestro le mande el estado de todas sus variables al PIC esclavo, cual es la manera de hacer el código mas eficiente?, son cerca de 100 variables, pero como lo podría hacer, lo que se me ocurre es crear algunos vectores e ir guardando en esos vectores cada variable, pero no se si sea muy eficiente asi, luego mandar los vectores completos por serial, alguna sugerencia?
10/09/2011 #2

Avatar de StrySG

Que tal crear una subrutina especial que cuando el maestro envie cierto codigo que puede ser un byte especial, todos los esclavos pasen a esa rutina para recibir 100 variables y el maestro mande otro codigo para terminar esta transferencia de datos. Al almacenar parace buena idea que los esclavos lo hagan en una matriz o arreglo de variables.
10/09/2011 #3


Pues si, algo asi tengo en mente, pero lo que no se igual es como hacer para recuperar esas variables en orden en el esclavo, claro que puedo hacer una rutina que me las guarde en cada variable, pero no me imagino la manera de hacerlo y que sea eficiente con muy poco codigo. Porque si el esclavo tiene su vector pues podria ser con un for que por cada ves guarde el valor entrante en cada espacio del vector, pero luego como usar esos valores durante la ejecución del programa sin tener que especificar en donde se encuentra el valor, no se si me explico.

Por ejemplo:
Valor1 = 10

y cuando lo guarde en mi vector seria algo como
vector[1]=valor, y asi ir guardando todo lo que necesite


Pero a la hora de recibir en el esclavo:
seria el for
hasta tener mi vector [1,2,3,4,5,6,7,8,9,10...etc]
Entonces como ir volcando esos valores en sus variables originales pero del lado del esclavo, sin tener que escribir cien veces:

Valor1= vector[1]
valor20= vector[20]
valor30= vector [30]
.
.
.
etc.

Bueno no se si me di a entender, saludos.
10/09/2011 #4

Avatar de StrySG

Si quieres recuperar las variables en orden primero tienes que mandarlas en orden, despues puedes escoger cualquier metodo para formar una matriz o arreglo de variables como un for, while, etc. Creo que la forma que planteas es correcta, cuando las necesites solo le apuntas a la direccion de la var en el vector.
10/09/2011 #5


Pues si, tendría que tener bien definido en el programa el numero especifico donde se encuentra la variable en el vector, y eso sería para cada uno de las variables que necesite utilizar, bueno intentaré así a ver como me va, a ver si no lo hago un desorden jeje saludos y gracias por tu respuesta.
10/09/2011 #6
Moderador

Avatar de Chico3001

No seria mas simple usar una memoria RAM externa? asi pueden compartir informacion de forma asincrona...
11/09/2011 #7
Moderador

Avatar de D@rkbytes

Tambien podrias usar un SELECT CASE con eso podrias diferenciar cada variable si en la salida serial utilizas una clave de envio. Me parece que en C es la función SWITCH
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.