Autor Tema: Curso de C, C++ para micros FreeScale  (Leído 19901 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado cdrpo

  • PIC18
  • ****
  • Mensajes: 317
Curso de C, C++ para micros FreeScale
« en: 10 de Julio de 2009, 12:47:22 »
:-/ Curso de C, C++ para micros FreeScale

Con esta publicación pretendo iniciar un curso introductorio de C, C++ para micros FreeScale, además de resolver dudas y entre todos incorporar más ejemplos
Hay que iniciar por lo mas simple (C,C++) para luego saltar al ASSEMBLER y tener todo el dominio del microcontrolador (reducción de código, mayor precisión de tiempos, localización mejor de la memoria, etc)

Programa #01:

El siguiente programa sirve para todo tipo de micros FreesCale y define una función "colocarNumero" que toma como parámetro un arreglo de números enteros entre 0 y 255 (unsigned char), luego extrae cada elemento y lo envía al puerto A.
Podemos colocar unos LEDs en el PuertoA para visualizar las secuencias de activación en forma binaria

El programa tiene como propósito transferir datos de un arreglo a una función
Código: C++
  1. /* CodeWarrior 6.2 2009 */
  2. #include <hidef.h>
  3. #include "derivative.h" /* Contiene la biblioteca del microcontrolador a trabajar */
  4. #include "retardos.h"   /* Contiene la biblioteca de retardos con un simple for */
  5.  
  6. ////////////////
  7. void colocarNumero ( unsigned char arreglo[] );  /* Declaración de la función */
  8. void colocarNumero ( unsigned char arreglo[] ) { /* recibe como parámetro el primer valor de un arreglo */
  9.  unsigned char x;
  10.  for( x = 0; x <= 2; x=x+1 ) {  /* Contador de 0 a 2 para extraer los tres elementos del arreglo */
  11.   PTA = arreglo[ x ];                /* Coloca en el puertoA los elementos del arreglo en intervalos de 3 segundos */
  12.   retardo ( 3 );
  13.  }
  14. }
  15. ////////////////
  16.  
  17. void main ( void ) {   /* Función principal  */
  18.  
  19.  CONFIG1_COPD = 0x01;  /* Deshabilita el perro guardián */
  20.  DDRA  = 0xFF;         /* PuertoA como salida, NOTA el registro DDRA Puede cambiar en algunos micros */
  21.  
  22.  for( ; ; ) {   /* ciclo infinito */
  23.  
  24.   unsigned char numeros1_3[ 3 ] = { 0x01, 0x02, 0x03 }; /* define el arreglo con los números del 1 al 3 */
  25.  
  26.   colocarNumero ( numeros1_3 );  /* envía el inicio del arreglo a la función para que coloque en el puertoA los elementos del arreglo en intervalos de 3 segundos */
  27.  
  28.  /* secuencia de de salida 00000001 (1) 00000010 (2) 00000011 (3) */
  29.  
  30.  }
  31.  
  32. }

El código anterior se compila perfectamente y montado sobre un Protoboard funciona muy bien

Al agregar un nuevo vector para que la funcion lo envie al puertoA el compilador genera errores ¿POR Qué el siguiente código genera error? Simplemente se adhirió al código anterior lo siguiente

...

  unsigned char numeros4_6[ 3 ] = { 0x04, x05, 0x06 };  /* define el arreglo con los números del 4 al 6 */
  colocarNumero ( numeros4_6 );  /* secuencia de de salida 00000100 (4) 00000101 (5) 00000110 (6) */

...
Por favor compilar el anterior codigo y descubrir el error
Gracias

Código: C++
  1. ...
  2.  for( ; ; ) {   /* ciclo infinito */
  3.  
  4.   unsigned char numeros1_3[ 3 ] = { 0x01, 0x02, 0x03 }; /* define el arreglo con los números del 1 al 3 */
  5.   colocarNumero ( numeros1_3 );  /* envía el arreglo a la función para que coloque en el puertoA los elementos del arreglo en intervalos de 3 segundos */
  6.  /* secuencia de de salida 00000001 00000010 00000011 */
  7.  
  8. // codigo en donde se genera el error??
  9.   unsigned char numeros4_6[ 3 ] = { 0x04, x05, 0x06 };  /* define el arreglo con los números del 4 al 6 */
  10.   colocarNumero ( numeros4_6 );  /* secuencia de de salida 00000100 00000101 00000110 */
  11.  }
  12.  
  13. }


Link de un foro amigo
http://www.ucontrol.com.ar/forosmf/freescale/
« Última modificación: 20 de Agosto de 2009, 09:41:57 por cdrpo »

Desconectado cdrpo

  • PIC18
  • ****
  • Mensajes: 317
Re: Curso de C, C++ para micros FreeScale
« Respuesta #1 en: 15 de Julio de 2009, 18:05:55 »
Busque info en la RED, para solucionar el problema pero sin resultados, encontré un libro
Microcontroladores Motorola-Freescale de Juan Carlos Vesga Ferreira y otros, editorial Alfaomega



Este libro es su mayoria habla de programación en lenguaje ensamblador con los micros FreeScaley este  solo tiene una pequeña introducción al C  :(

Espero por favor que traten de compilar el código anterior y buscar donde estoy fallando
Gracias
« Última modificación: 20 de Agosto de 2009, 14:06:18 por cdrpo »

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Curso de C, C++ para micros FreeScale
« Respuesta #2 en: 16 de Julio de 2009, 16:30:12 »
HOla cdrpo ,

Aca tienes un libro nuevo, no lleva un mes de haberse publicado. Hablan de temas interesantes, y al finalizar una pequeña guia de RTOS. todo es en C desde lo basico. Hablan de Freescale AP16 y PIC 877A


Desconectado cdrpo

  • PIC18
  • ****
  • Mensajes: 317
Re: Curso de C, C++ para micros FreeScale
« Respuesta #3 en: 16 de Julio de 2009, 20:01:07 »
Muchas gracias PICmouse, veo que tienes experiencia con micros FreeScale, en tu tiempo libre por favor trata de cargar el programa que propongo en cualquier micro FS a ver que fallas le encuentras

//////////////////////
Información Editorial:
Título Programación de Sistemas Embebidos en C
Sub-Titulo Teoría y prácticas aplicadas a microcontroladores FreeScale MC68HC908API16/32/64 y PIC
Autor Ingeniero Electrónico Gustavo Adolfo Galeano Atehortúa
Páginas 544, Edición 1a, Fondo Editorial Alfaomega

- :) La teoría del libro muy buena, los ejemplos prácticos un poco simples y tienen muy pocos comentarios.
- :( Lo malo es que el programador para micros FreeScale es para PCs con puerto serial que es obsoleto actualmente ya que usa un micro que esta saliendo del mercado los MC68HC908x, El autor debió haber trabajado con un micro mas moderno y programable por el puerto USB
//////////////////////

Igualmente el otro libro, Microcontroladores Motorola-Freescale de Juan Carlos Vesga Ferreira trabaja con micros obsoletos y practicas no muy bien documentadas y simples

///
Conclusión espero una segunda edición de ambos libros uno especializado en lenguaje ensamblador y el otro en C pero con buenas practicas y con un microcontrolador moderno
« Última modificación: 20 de Agosto de 2009, 14:08:40 por cdrpo »

Desconectado marvicdigital

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 311
Re: Curso de C, C++ para micros FreeScale
« Respuesta #4 en: 17 de Julio de 2009, 13:01:28 »
HOla cdrpo ,

Aca tienes un libro nuevo, no lleva un mes de haberse publicado. Hablan de temas interesantes, y al finalizar una pequeña guia de RTOS. todo es en C desde lo basico. Hablan de Freescale AP16 y PIC 877A


Pic Mouse, mil trillones de gracias..no te doy más por que se me acabaron  :mrgreen:  este libro lo acabo de comprar, descorchar y ojear y es lo que necesitaba para dar el paso a C  y más ahora que estoy de lleno 100% con los freescale y con unas muestras de unos JM16  solo me falta el programador,  :(  ojala pudiera conseguirlo a buen precio en mi país, y que bueno sería el OS BDM que en una tienda de USA lo venden por US$45 .....depronto tu los tendrás PIC Mouse?....

Saludos y de nuevo gracias.


Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Curso de C, C++ para micros FreeScale
« Respuesta #5 en: 17 de Julio de 2009, 21:10:46 »
perdon por el offtopic..el libro es producto colombiano :-/ :-/ y esta buena la info de la pagina
« Última modificación: 17 de Julio de 2009, 21:21:23 por jhozate »
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Curso de C, C++ para micros FreeScale
« Respuesta #6 en: 18 de Julio de 2009, 11:33:51 »
Asi es, es colombiano, lo ha escrito una persona que conoce el tema y bueno, a mi me parece perfecto para pasar de una vez por todas a programacion en C.

Yo estoy metido de lleno en el ultimo capitulo donde hablan del RTOS uC/OS II.

marvicdigital, el libro se basa en el micro HC08AP16, en el hablan de un PCB que trae hasta el programador incluido, si necesitas el libro I/O el PCB original del libro, me avisas!

SALUDOS!
« Última modificación: 18 de Julio de 2009, 11:36:25 por PICmouse »

Desconectado marvicdigital

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 311
Re: Curso de C, C++ para micros FreeScale
« Respuesta #7 en: 18 de Julio de 2009, 21:35:36 »
Gracias PIC mouse, el libro ya lo tengo, solo  falta conseguirme el arte del impreso para el AP16 ya que en menos de 2 horas haría el impreso, si tienes ese arte la serigrafía y el enrutado, me vendría muy bien  :P....no quisiera comprar algo que yo puedo hacer..si no se puede ,pues hago las prácticas con el JL8..me interesa más el BDM si lo tienes me avisas.

Saludos

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Curso de C, C++ para micros FreeScale
« Respuesta #8 en: 19 de Julio de 2009, 01:17:18 »
Hola,
Lo que tengo es el original del libro, la propiedad intelectual de eso es del autor. Sobre el BDM, nada de eso tengo, pero en la pagina de Freescale hay bastante información sobre el tema.

SALUDOS!

Desconectado marvicdigital

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 311
Re: Curso de C, C++ para micros FreeScale
« Respuesta #9 en: 19 de Julio de 2009, 17:10:50 »
Hola,
Lo que tengo es el original del libro, la propiedad intelectual de eso es del autor. Sobre el BDM, nada de eso tengo, pero en la pagina de Freescale hay bastante información sobre el tema.

SALUDOS!

Llevo buscando ese PDF con el impreso en al web de alfaomega.com.mx  donde registré el libro y no lo encuentro, tu sabes en que lugar está exactamente?...el libro me dice que el PDf está en la WEB pero yo no veo nada.

Gracias

Saludos

Desconectado cdrpo

  • PIC18
  • ****
  • Mensajes: 317
Re: Curso de C, C++ para micros FreeScale
« Respuesta #10 en: 07 de Agosto de 2009, 18:13:35 »
 :-/
En el siguiente PDF página 116

http://www.freescale.com/files/microcontrollers/doc/data_sheet/MC68HC908AP64A.pdf

está el circuito programador de la familia de microcontroladores APx de la cual habla el libro

MC68HC908AP64A 64KBytes
MC68HC908AP32A 32KBytes
MC68HC908AP16A 16KBytes
MC68HC908AP8A   8KBytes

La idea es realizar la PCB libre (no $), para encaminarnos con los micros Freescale,

PD: este circuito de class 1


« Última modificación: 10 de Agosto de 2009, 19:06:38 por cdrpo »

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: Curso de C, C++ para micros FreeScale
« Respuesta #11 en: 07 de Agosto de 2009, 19:07:52 »
Saludos

Amigos cuanto cuesta este libro me intereza adquirirlo. lo puedo conseguir en cualquier libreria. Un abrazo
Un saludo desde Pereira - Colombia

Desconectado marvicdigital

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 311
Re: Curso de C, C++ para micros FreeScale
« Respuesta #12 en: 08 de Agosto de 2009, 09:29:43 »
:-/
En el siguiente PDF página 116

http://www.freescale.com/files/microcontrollers/doc/data_sheet/MC68HC908AP64A.pdf

está el circuito programador de la familia de microcontroladores APx de la cual habla el libro

MC68HC908AP64A 64KBytes
MC68HC908AP32A 32KBytes
MC68HC908AP16A 16KBytes
MC68HC908AP8A   8KBytes

La idea es realizar la PCB, para encaminarnos con los micros Freescale,

PD: este circuito es mucho mas simple que el que esta en el libro


Mira, yo tome varios programadores parea los HC08 que se pueden encontrar en la red, mezcle algunas ideas y le di mi toque personal y me quedó exactamente como esto:



Como no tengo la cámara en estos momentos no puedo mostrarles como me ha quedado el programador final, pero les aseguro que me funciona al 100 con cualquier HC08, no lo he probado con el AP16 pero por ser HC08 podría decir que debería funcionar sin problema...yo estoy haciendo las prácticas del libro con el HC08JL8  y hago las modificaciones del caso, sobre todo en cuanto a puertos y todo eso y listo. Cmo ven tiene un conector de 6 pines para que sea lo más universal que se pueda. se hace un conector con cable ribbon y se lleva al protoboard y voila!..

El circuito y el impreso los hice con el Kicad, si les interesa armarlo para sus estudios les puedo facilitar el arte final que está hecho en Corel X3 o el proyecto en kicad, eso si, como este programador lo estoy vendiendo les pido que sea solo para su uso personal.

Saludos

Para Chenao, el libro lo puedes conseguir en la Zamora que queda en la calle 19 con cra 5 esquina, vale 59.000 o llamas y te lo envían a tu casa.
Saludos también desde Pereira   :mrgreen:
« Última modificación: 08 de Agosto de 2009, 09:32:00 por marvicdigital »

Desconectado cdrpo

  • PIC18
  • ****
  • Mensajes: 317
Re: Curso de C, C++ para micros FreeScale
« Respuesta #13 en: 08 de Agosto de 2009, 10:46:09 »
 :8} :8}

No podre practicar con este programador pues mi portátil ya no tiene el obsoleto puerto serial, y con un adaptador de USB a RS232 no funciona, pues CodeWarrior no lo reconoce, solo Freescale nos puede ayudar haciendo que CW reconozca los puertos virtuales creados por un adaptador

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: Curso de C, C++ para micros FreeScale
« Respuesta #14 en: 08 de Agosto de 2009, 11:17:55 »
Saludos

Ya me ubique marvicdigital. muchas gracias por el dato y la verdad tiene un precio relativamente económico. un abrazo y saludo también desde Pereira paisano  :mrgreen:
Un saludo desde Pereira - Colombia


 

anything