TODOPIC

Otros Microcontroladores / Dispositivos programables => Microcontroladores ARM => Mensaje iniciado por: LABmouse en 22 de Diciembre de 2008, 21:23:36

Título: Problemas con el Processor Expert
Publicado por: LABmouse en 22 de Diciembre de 2008, 21:23:36
Hola!

Sucede que yo siempre creaba el código en C usando Codewarrior y sin Device Init ni Processor Expert. Pero en una conferencia de Freescale usaron este ultimo y quede sorprendido. Hace la programación de micros Freescale mas fácil que CCS lo hace para PICs.

En 2 minutos tenia el programa de luces en leds corriendo y perfectamente funcional. pero mi problema se vino cuando necesite crear variables globales que se usan en el main, en las funciones mías y en las events.

el main y el event estan en hojas diferentes y a pesar de incluir dentro del main al events, por mas que declaro las variables primero que todo como lo hago en PICs, Codewarrior insiste que las variables no están declaradas.. 

La pregunta especifica es:

Como declarar una variable para que se puedan usar en todas las hojas del proyecto... tanto en events como en main.

Adjunto el proyecto (http://rapidshare.com/files/175919500/Display.zip.html) a ver si les compila.

Saludos!
Título: Re: Problemas con el Processor Expert
Publicado por: RICHI777 en 22 de Diciembre de 2008, 21:34:01
Hola PicMouse, deberias usar la palabra extern, asi:

extern int Pepe;

Entonces el compilador sabe que la variable Pepe es del tipo int pero esta declarada en otro modulo

Saludos !
Título: Re: Problemas con el Processor Expert
Publicado por: LABmouse en 22 de Diciembre de 2008, 21:35:30
Listo listo, gracias por las respuesta y muchísimas gracias por ser tan rápida..   :-)
Título: Re: Problemas con el Processor Expert
Publicado por: LABmouse en 22 de Diciembre de 2008, 21:38:22
No funciono..  :?

Sigue saliendo error..

En la hoja events hago esto:

unsigned char Disp_Umil=0,Disp_Centena=0,Disp_Decena=0,Disp_Unidad=0;

en la main esto:

extern unsigned char Disp_Umil=0,Disp_Centena=0,Disp_Decena=0,Disp_Unidad=0 ;

Esta mal?? eso fue lo que entendí y no corre .

Encontré este (http://www.kemt.fei.tuke.sk/Predmety/KEMT411_ESM/_materialy/Prednasky/CW_ProcessorExpertUG.pdf) buen manual de PE pero no dice nada tampoco de variables globales..
Título: Re: Problemas con el Processor Expert
Publicado por: scientist en 23 de Diciembre de 2008, 01:57:22
hola PICmouse, prueba usando extern volatile en tu hoja de main y en tu hoja de eventos, lo mencionas como volatile
ejemplo, en una interrupcion externa, se crea la hoja de events, en tu main creas una flag llamada "flag" (que original soy,jejeje) bueno
la llamariamos

extern volatile bool flag;  (en tu caso seria int en lugar de bool)

y en tu hoja de eventos lo llamarias asi

volatile bool flag;


y asi no hay errores, mi querido amigo, bueno, no deberia, por que asi yo llamo las variables externas, comenta si funciono, saludos
Título: Re: Problemas con el Processor Expert
Publicado por: damago en 23 de Diciembre de 2008, 07:59:32
Hola PICmouse,

donde declares las variables 'extern' no las inicialices (se trata de la misma variable y no se puede inicializar con varios valores, aunque en este caso le des el mismo valor).

En la hoja events hago esto:

unsigned char Disp_Umil=0,Disp_Centena=0,Disp_Decena=0,Disp_Unidad=0;

en la main esto:

extern unsigned char Disp_Umil,Disp_Centena,Disp_Decena,Disp_Unidad;

Un saludo. Dani.
Título: Re: Problemas con el Processor Expert
Publicado por: RICHI777 en 23 de Diciembre de 2008, 10:20:58
Tal cual lo dijo Damago, sacando los inicializadores se soluciona, lo probe :P

Saludos !
Título: Re: Problemas con el Processor Expert
Publicado por: LABmouse en 23 de Diciembre de 2008, 10:53:50
Si Si, esta solucionado totalmente, GRACIAS!!   :-/

Habia mandado un mail a soporte Freescale jajaja  :D. No me han respondido pero ta mejor el soporte TODOPIC.

Gracias damago(dani),  RICHI777, scientist. Estaremos todas estas vacaciones en Freescale a ver si desde enero me quedo por completo acá.

SALUDOS!


Título: Re: Problemas con el Processor Expert
Publicado por: LABmouse en 23 de Diciembre de 2008, 12:07:25
Esta es la respuesta de Freescale:

Citar
Dear XXXXXXX,

Thanks a lot for your feedback.
I just saw your project. I compile it, the compiler can not find
"Disp_Umil,Disp_Centena,Disp_Decena,Disp_Unidad" in your display.c
file.
You defined "Disp_Umil,Disp_Centena,Disp_Decena,Disp_Unidad" in events.c
file but didn't declare these variables as external in display.c. when
add below declaration in display.c before main(). There is no compile
error:
//////////////////////
extern unsigned char Disp_Umil,Disp_Centena,Disp_Decena,Disp_Unidad;
///////////////////////

Is this your problem? Please let me know if this doesn't answer your
questions.

Should you need to contact us with regard to this message, please see
the notes below.

Best Regards,

Technical Support
Freescale Semiconductor

Bueno, les recomiendo usar el soporte Freescale en preguntas que no tengan respuesta alguna por ningún lado.   Claro que primero preguntar en TODOPIC.  :D
Título: Re: Problemas con el Processor Expert
Publicado por: scientist en 23 de Diciembre de 2008, 12:39:43
excelente tener a alguien de tremendas capacidades, haciendo proyectos con estos poderosos micros, asi es, haz caido en la adiccion de codewarrior, el compilador adictivo, ten cuidado, jejejeje
Título: Re: Problemas con el Processor Expert
Publicado por: RICHI777 en 23 de Diciembre de 2008, 17:22:19
Hola PicMouse, en mi caso cuando tengo que compartir variables y para no tener que estar declarando extern en los archivos que las uso, uso esta estructura de h.

Código: C
  1. /*===========================================================================================================
  2. ** GLOBALS.H                                                  
  3. **==========================================================================================================
  4. ** This module define all globals vars
  5. **==========================================================================================================
  6. ** Date             Author                  Comment
  7. ** XX-XX-XXXX       XXXX_YYYY               Initial Version
  8. **==========================================================================================================*/
  9. #ifndef __GLOBALS_H
  10. #define __GLOBALS_H
  11.  
  12. /* Include area */
  13. #include "types.h"
  14.  
  15. /* Esta macro define el comportamiento de la declaracion _STORAGE_LINK_ */
  16. #ifdef __FORCE_STORAGE_LINK__
  17.   #define _STORAGE_LINK
  18. #else
  19.   #define _STORAGE_LINK extern
  20. #endif
  21.  
  22. _STORAGE_LINK bool DownloadPushButtonWasPress;
  23. _STORAGE_LINK bool LastDownloadWasSuccess;
  24. _STORAGE_LINK bool Inited;
  25.  
  26. #endif

Es decir todas las variables que van a ser compartidas entre módulos las colocas en este h, en todos los archivos donde vas a hacer referencia a la misma solamente colocas el include necesario para este archivo.h
Pero solamente en un módulo incluis la sgte declaración:

Código: C
  1. #define __FORCE_STORAGE_LINK__
  2. #include "global.h"

Entonces en el archivo donde colocas la última declaración al definir la macro __FORCE_SOTRAGE_LINK__ el preprocesador reemplazara la macro del H _STORAGE_LINK por nada con lo cual queda como declaración real de la variable, en los otros archivos donde haces la inclusión a secas del archivo la última macro se reemplaza por extern. De esta manera me olvido de colocar los molestos extern.

Saludos !
Título: Re: Problemas con el Processor Expert
Publicado por: LABmouse en 24 de Diciembre de 2008, 13:17:56
Perfecto truco!

Estará debidamente aplicado!  :P
Título: Re: Problemas con el Processor Expert
Publicado por: scientist en 26 de Diciembre de 2008, 00:56:04
tengo un problema con el processor expert, yo siempre he usado el codewarrior para los micros HCS12, pero ahora me compre la DEMOQE, y quise hacer unos programas con el codewarrior version 6.2, pero me dice que mi licencia no es de nivel suficiente, lo intente con otros mas que no sean el qe, y tambien me dice lo mismo, la pregunta seria, la version special no deja utilizar el processor? o es que he instalado mal mi programa?
saludos
Título: Re: Problemas con el Processor Expert
Publicado por: LABmouse en 26 de Diciembre de 2008, 01:01:28
Hola  scientist!!

Debes instalar un parche para el PE. Yo lo tengo para el 6.1.. Dime que versión tienes y vemos como te ayudo.

SALUDOS!

EDITO: La DemoQE trae el CD con el 6.1, instala ese no?
Título: Re: Problemas con el Processor Expert
Publicado por: LABmouse en 26 de Diciembre de 2008, 01:15:40
Acá (http://www.freescale.com/webapp/sps/site/prod_summary.jsp?ProdMetaId=PID/DT/PROCESSOR-EXPERT&isAdvanceSearch=false&showCustomCollateral=false&RELEVANCE=true&fromTrng=false&showAllCategories=false&fpsp=1&fromPSP=true&SelectedAsset=Downloads&assetLocked=false&&leftNavCode=1&assetLockedForNavigation=true&code=PROCESSOR-EXPERT&componentId=2&fromDAP=false&fromWebPages=false&tab=Design_Tools_Tab&isComparison=false&Downloads=Downloads/030JOVF015Q3``Updates%20%26%20Patches&) están las actualizaciones!!

SALUDOS!
Título: Re: Problemas con el Processor Expert
Publicado por: scientist en 26 de Diciembre de 2008, 02:24:21
Hola PICmouse, a mi me trajo la version 6.0, de la demoQE128, pero me paso algo muy raro al principio, intente compilar los ejemplos que traen, y parami sorpresa no me dejaba, me salio un error, especificamente error 45, y yo ya me habia puesto asustado, pense que estaba funcionando mal mi multilink embebido, y bueno, llegue a pensar qe era los jumpers mal configurados, pero estuve buscando por internet, y resulta que esa version tenia problemas con hardware de AMD, la que tiene mi laptop compaq, asi qe me dispuse a instalar la version 6.2, de ahi no tengo problemas solo con el processor, un amigo me paso una licencia, y listo, el problema es que nose si la que me paso es la full que caduca en 30 dias o simplemente mi licencia especial no funcionaba correctamente, buscare informacion en P&E, como me comentas, ahora mismo encaro una batalla con el 9s08qe128, cuando lo aprenda bien, me paso al de 32 bits, pero ya me puse de meta, ser como RICHI777 sin nada de processor expert, ahora mismo me estoy aprendiendo los registros, y entrenando, esperando mas adelante aportar algo bueno, RICHI777, nos podrias explicar como haces, me parecio leer una vez, que lo que hacias era abrir dos codewarrior, uno con processor, para solamente inicializar, y otro a puro c, tambien c++? saludos
Título: Re: Problemas con el Processor Expert
Publicado por: RICHI777 en 26 de Diciembre de 2008, 13:52:50
Hola scientist, te soy sincero, no me considero un experto en hardware, mas que nada me considero un tipo con mucha experiencia en firmware ( tengo 42 años ) por eso no me conozco el 100 % de los registros y modos del micro. Las experiencias con el Expert fueron buenas, el código generado es bueno la única contra en su momento es que por cada been me generaba un archivo y enseguida llege al limite de 32 archivos que se pueden manejar en forma gratuita. Ademas no me gusta eso de que cada cosita es un arhivo, normalmente casi todo el acceso al hardware lo encapsulo en un solo archivo, pero es una cuestion de gustos. La otra cosa que si me parece muy importante es el tema de variables globales para las colas del puerto serie o del SPI, cuando usas un micro con poca RAM eso es una limitación importante. Lo que hago ahora, es tal como lo hice en MicroLogger, es tener dos proyectos, el que usa el Expert solamente lo uso para configurar puertos, clocks, baud-rate, etc, etc despues hago un copy-paste del código y lo paso al proyecto final, ademas le saco esas macros feas que usa el expert, siempre usando el archivo H correspondiente al micro. Si te fijas en MicroLogger la parte del serie es una copia textual del manejo del serie del expert porque ? porque esta muy bien hecha.

Saludos !
Título: Re: Problemas con el Processor Expert
Publicado por: scientist en 26 de Diciembre de 2008, 14:23:38
ok  :D :D :D :D :D, como es la gente de modesta   8)  , mas omenos tenia la idea de hacerlo asi, y gracias a tus tips, voy a hacerlo asi, otra pregunta, mejor la hago despues de estudiar bien tu codigo de micrologger , saludos  :)
Título: Re: Problemas con el Processor Expert
Publicado por: RICHI777 en 26 de Diciembre de 2008, 15:06:21
jejeje, Una de las cosas que me gustaria avanzar y creo que los que habitualmente leemos los hilos de FreeScale podemos colaborrar,  es terminar y liberar el código para el Stack TCP en base a un Flexis + un ENC28J60 de MicroChip, que les parece ?

Saludos !

Título: Re: Problemas con el Processor Expert
Publicado por: scientist en 26 de Diciembre de 2008, 15:30:57
me parece buena idea, el enc28j60 trabaja con SPI no? solo habria que hacer bien la pila tcp, ip, creeme, me gusta la idea, acabo de comprar una pequeña celda solar que me da 4.5v 100mA, suficiente para alimentar el QE, creeme, que estare esudiando muy bien a la familia flexis, y poder hacer algo con estacion remota solar, saludos
Título: Re: Problemas con el Processor Expert
Publicado por: RICHI777 en 26 de Diciembre de 2008, 17:11:13
Exacto, el ENC28J60 se conecta via SPI, y hacer un stack TCP no es un tarea sencilla...

Saludos !
Título: Re: Problemas con el Processor Expert
Publicado por: scientist en 26 de Diciembre de 2008, 18:49:21
asi es, para nada es una tarea facil, hace mucho tiempo estuve investigando el 9s12ne64, que tiene tcp,ip embebida, su tarjeta de desarrollo esta muy cara, alrededor de 550 dolares, por ahi vi una tarjeta de evaluacion coldfire v2, a 100 dolares, pero primero se intentara la batalla, saludos
Título: Re: Problemas con el Processor Expert
Publicado por: RICHI777 en 26 de Diciembre de 2008, 19:41:28
Hola, me parece que el 9s12ne64 tiene incorporado un controlador Ethernet no TCP de manera similar al ENC, y creo que FreeScale te ofrecia un Stack limitado para el uso que no lo hizo, no me acuerdo quien lo hacia, en su momento diseñe el esquematico con un Flexis, pero despues vi que mucha gente te tira el Stack por la cabeza asi que se me fueron las ganas. Pero la idea es en algun momento hacerlo.

Saludos !
Título: Re: Problemas con el Processor Expert
Publicado por: rockillos en 13 de Junio de 2009, 08:07:46
Hola a todos
Retomo este hilo después de mucho tiempo parado. Estoy empezando a trabajar con microcontoladores y no me entero muy bien. Tengo que gestionar la comunicación SPI programando en codeWarrior como PICmouse y no sé por donde empezar. He visto que subió a RapidShare un proyecto de este tipo, pero ya no está. A mí este proyecto me serviría muy bien de ejemplo. Si alguien lo tiene estaría muy agradecido si me lo dejara. O bien, si alguien puede facilitarme ficheros C que gestionen el SPI en un microcontrolador, me está costando mucho encontrarlos en Internet.
Muchas gracias y saludos
Título: Re: Problemas con el Processor Expert
Publicado por: LABmouse en 09 de Julio de 2009, 12:01:37
Hola rockillos,

Cual microcontrolador estas programando?
Título: Re: Problemas con el Processor Expert
Publicado por: RICHI777 en 09 de Julio de 2009, 12:54:14
Hola, la comunicación con el módulo SPI es bastante sencilla, basicamente tenes que definir estas funciones:


La comunicación puede ser por polling, es decir vos verificas, leyendo el registro correspondiente, cuando se terminó de transmitir o cuando se recibió un byte del dispositivo esclavo. O por interrupción donde deberas poner código en el handler correspondiente atendiendo lo mismo que mencioné anteriormente.

Te paso algunos links:

Si vas a trabajar con la linea HCS08 este es un quick reference de los perifericos de la familia

http://www.freescale.com/files/microcontrollers/doc/user_guide/HCS08QRUG.pdf

Si vas a trabajar con los V1 este

http://www.freescale.com/files/microcontrollers/doc/user_guide/QE128QRUG.pdf?fpsp=1


Te paso tambien este post, donde en los archivos fuentes esta implmentado una comunicación SPI para contrlar una trajeta SD

http://www.todopic.com.ar/foros/index.php?topic=23459.0



Saludos !