• Jueves 2 de Mayo de 2024, 06:42

Autor Tema:  Re: Para empezar bien  (Leído 9037 veces)

ADC

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Para empezar bien
« en: Miércoles 27 de Agosto de 2003, 03:02 »
0
Hola,
  llevo como 4 años metido a fondo con los microcontroladores y suelo frecuentar el foro de www.odisea2010.com, pero esta muerto, la gente no hace proyectos, por eso voy a compartir lo fundamental con vosotros a ver si os animais....

 Sobre los PICs:

  Todos los se comercializan actualmente son de 8 bit, aunque se espera una familia nueva de 16 bit con una alu tipo DSP para este otoño.
 Para empezar os recomiendo directamente el 18F452 es de 8 bit, 10MIPS@40Mhz, con multiplicador hardware(las series 12, 14 y 16 no tienen).
 Es importantisimo conocer muy bien la arquitectura y el dispositivo en cuestion xq trae un monton de perifericos integrados, asi que hay que manejar MUCHOS registros, aunque programeis en C.

 Sobre los programadores:

 Me refiero con programador al dispositivo que se utiliza para cargar en la FLASH el programa, os recomienfo el TE-20, lo tienen en cualquier tienda de electronica decente por unos 10€.
 Con este programador podeis programar cualquier PIC(incluido los DSPic) xq son todos compatibles, si no te coincide con el zocalo sacais cables y los llevais a las patillas correspondientes del PIC( bajaos los datasheet de: www.microchip.com).
 Necesitareis ademas un programilla : el ICprog(es gratuito).
 
 Sobre los lenguajes de programacion:
 Hay de todo: ASM, Basic , C,Pascal.
 Lo mejor es aprender ASM pero no dedicarle demasiado tiempo, mas que nada para conocer bien el micro, yo uso C,concretamente con el compilador Hi-Tech PICC18 junto con el IDE HI-TIDE.
 Este compilador es de los mejores, y el IDE simula entradas y salidas virtuales, con lo que puedes simular proyectos +o- simples sin montar nada.
 Cuando domineis esto, que sera rapido xq ya sabeis C, el paso siguiente es usar un Sistema Operativo en el PIC:o, ke para ke? pues para lo mismo que haceis con windows o linux. Yo uso SalvoRTOS hay una version freeware que limita a un maximo de tres procesos 5 semaros y 4 colas de mensajes, os aseguro que es lo mejor, usando un SO puedes harcer en 2 dias proyectos que en ASM tardarias 2 o 3 meses.

 Otras cosas importantes pa empezar:
 Necesitas una insoladora(dos tubos fluorescentes en una caja).
 Un soldador.
 Un programa para dibujar PCBs(placas).
 Un cursillo rapido de electronica basica.

 Y algunas referencias:
  www.microchip.com
  www.microchipc.com (imprescindible para C)
  www.pumpkininc.com
  www.odisea2010.com (para aprender)
  www.conket.com (para aprender)

espero que ya sepais por donde empezar y ya pasare por aki, a ver si esto progresa...
 Saludos :hippi:

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Para empezar bien
« Respuesta #1 en: Miércoles 27 de Agosto de 2003, 14:03 »
0
Hola ADC, gracias por estos consejos de profecional, nos ayudaras a varios a poder progresar... lo unico que no entendi fue lo del sistema operativo para micros... Acaso es un sistema operativo independiente de windows y linux exclusivo para microcontroladores???... Las gracias nuevamente y hasta pronto. :guitar:
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

ADC

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Para empezar bien
« Respuesta #2 en: Jueves 28 de Agosto de 2003, 00:35 »
0
Hola Jonathan.
 El sistema operativo del que te hablo es totalmente independiente de windows y de linux, es un nucleo desarrollado por otra empresa, y sirve para varios microcontroladores, incluyendo los de Microchip, Motorola, Atmel, TexasInstruments e incluso para micros x86.
 Si no tienes conocimentos claros sobre que es un sistema operativo realmente, te recomiendo que no lo uses con el pic por ahora, espera a adquirir buenos conocimentos sobre SO en general, de todas formas te comento para que y como lo uso:
 La pricipal ventaja de usar un sistema operativo reside en poder correr varios procesos "a la vez" en un micro, para esto ofrece servicios para poder crear o destruir procesos, para que se puedan comunicar o sincronizar entre si, para poder parar procesos deurante un tiempo...
 imagina la siguiente situacion: tu aplicacion recibe comandos por el puerto serie por ejemplo, para activar unos reles, a la vez tienes que hacer parpadear un led con una frecuencia de 1Hz, leer un teclado matricial y escribir mensajes ,segun el comando recibido, en una pantalla LCD. Si lo enfocaras desde una perspectiva clasica secuencial(como se programa para MSDOS p.e.) tendrias que comprobar si se ha recibido un comando por el puerto, en caso afirmativo escrivir el mensaje correspondiente en la LCD y activar algun rele,comprobar si se pulso una tecla, esperar un segundo(malgastando tiempo de CPU) y despues cambiar el estado del LED, todo esto secuencialmente.Esto presenta problemas, el mas evidente es que no puedes asegurar que el LED parpadee a 1Hz, ademas durantes el segundo que estas esperando puedes perder comandos recibidos por el puerto serie, o pulsaciones del teclado. Con un sitema operativo crearias procesos independientes para cada tares, por ejemplo en este caso, podrias tener un proceso para gestionar los comandos recibidos (OnCommad), otro para leer el teclado (OnKeys), otro para escribir en la LCD(LCDUpdate) y otro para hacer parpadear el LED(LEDBlink). El proceso OnCommad solo se ejecutaria cuando recibieses un comando por el puerto, dejando el micro libre el resto del tiempo,OnKeys cunado se pulse una tecla,LCDupdate solo cuando OnCommad le envie un mensaje con lo que tiene que escribir, y LCDBlink cada segundo(dejando el micro libre cada vez), de este modo puedes sacar mucho mas rendimiento al micro.Como ves la multitarea y la programacion basada en eventos no es ni mucho menos exclusiva de los PCs:D
 Saludos y animo:comp:

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Para empezar bien
« Respuesta #3 en: Jueves 28 de Agosto de 2003, 14:18 »
0
Hola ADC, gacias por tu explicacion, es realmente interesantisimo saber que eso existe, unque no creas, no sabias de eso hasta ahora que lo explicas... Dime, existe algun sistema operativo como el que usas pero en español?... la verdad que me interesa el tema...otra cosa... Que es lo que deb esperar para poder utilizar un sistema operativo, tiempo para conocer el micro o para aprender el uso del SO???... realmente muy bueno todo esto, y la ultima consulta, .... de todas maneras seguiria utilizando asm para la programacion de los micros o el SO utiliza un nuevo lenguaje???... Bueno, espero no estorbarte con tantas preguntas, las gracias nuevamente y hasta pronto.:beer:
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

ADC

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Para empezar bien
« Respuesta #4 en: Viernes 29 de Agosto de 2003, 01:20 »
0
Hola Jonathan.
 Hay multitud de sistemas operativos, especificamente compatible para PIC solo conozco este, aunque probablemente podrias adaptar otro, por ejemplo LINUX, pero esto te llevaria mucho tiempo y trabajo aunque fueses un experto, hay otras formas de hacer multitarea (en la web de microchip hay una nota de aplicacion sobre el tema "Simple multitasking with PIC micro MCUs"). El idioma del sistema operativo no debe ser relevante, lo unico que tienes que aprender son los servicios que te ofrece y como usarlos, generalmente son funciones o procedimientos, un ejemplo:
void task_ADC()
{
for(;;)
{
  OS_WaitSem(SEM_MUESTREAR,NO_TIMEOUT);
 ...
 //codigo que haga lo que quieras en C o ASM
 ...
 OS_SignalSem(SEM_ADOK);
}
}

este ejemplo seria la definicion de un proceso, cuando lo creases se quedaria esperando  que el semaforo SEM_MUESTREAR sea señalado por otro proceso o desde la rutina de interrupcion,cuando esto ocurriese el proceso pasaria a estado "ready" y entraria en ejecucion cuando el micro este libre y no halla otro proceso con prioridad superior a la suya esperando, ejecutaria el codigo y al final señala al semaforo SEM_ADOK, por ejemplo para indicar a otro proceso que se ha procesado una muestra.
 
 Esto esta muy bien Jonathan, pero lo mejor es que no empieces con esto directamente, primero debes conocer bien el micro, haz programas en ASM y en C, cuando no tengas ya problemas y domines esto, lo mejor es que busques documentacion sobre sistemas operativos en general, pues todos tienen mucho en comun, almenos conceptualmente.
 Realmente si lo que quieres en introducirte lo que tienes que hacer es experimentar con el micro, hacer pequeños proyectos, primero en ASM, mas tarde en C. Un buen camino seria aprender a manejar los puertos de E/S, un proyectito para manejar una pantalla LCD y un teclado, despues aprende a manejar el puerto serie y ya podras enviar comandos al micro desde el PC con cualquier terminal (p.e. Hyperterminal, que viene con windows),una vez sepas esto no tendras problemas para manejar todos lo demas perifericos del micro, pero lo mas importante... leete el dasheet del micro que vallas a usar:excl:.
 Saludos...:lightsabre:

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Para empezar bien
« Respuesta #5 en: Sábado 30 de Agosto de 2003, 00:59 »
0
Gracias amigo, agradesco de corazon los consejos que me has otorgado, continuare con mis proyectos en microcontroladores, despues de un buen tiempo "como me recomiendas" experimentare con los sistemas operativos... Gracias!!!. :gracias:
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

etolocka

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Para empezar bien
« Respuesta #6 en: Domingo 11 de Enero de 2004, 15:19 »
0
Hola

Leí al comienzo de estos mensajes acerca de un RTOS compatible para PIC y otros micros (como Motorola, en los cuales estoy interesado) llamado algo así como "salvoRTOS".

No he encontrado información en la Web, así que les agradecería si me pueden dar mas información.

Gracias
Ernesto.
www.mundomicro.com.ar

davidan_bernal

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Para empezar bien
« Respuesta #7 en: Domingo 29 de Agosto de 2004, 20:49 »
0
hola soy nuevo en este servivio trabajo con pic hace 2 anos y estoy muy interesado en innovar con tecnologia dspic en colombia ya que es muy poco conocida y como comprar un programador dspic en colombia es muy costoso lei arriba que habla que uno puede programar los dspic con un programador convencional de pic mediantes cables me gustaria saber como irian esas conexiones y si me pueden pues ayudar un poco con ese tema enviandome informacion o links que esten desarrollando sobre esta tecnologia.

muchas gracias,
david bernal
davidan_bernal@etb.net.co

AAV

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Para empezar bien
« Respuesta #8 en: Sábado 20 de Agosto de 2005, 22:23 »
0
Hola ADC:  Fijate que nunca he trabajado con microconntroladores pero me interesa aprender a programar  el PIC18F452 con el programa PICC18. Que me recomiendas hacer primero para lograr este objetivo????

AAV

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Para empezar bien
« Respuesta #9 en: Sábado 20 de Agosto de 2005, 22:32 »
0
Amigos!!!!, ke tanto hay de cierto que con PICC18 no muestra los errores que hay a la hora de hacer la compilacion????

AAV

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Para empezar bien
« Respuesta #10 en: Domingo 21 de Agosto de 2005, 21:36 »
0
:o  Hola chavos del foro!!!!   Ke tan facil es migrar un programa de un PIC a otro????   Fijense que tengo que migrar un programa del PIC 14??? al PIC18F452
pero no se que tan dificil sea............ si alguien me puede sugerir algo se lo agradeceria mucho.

Darevelo

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Para empezar bien
« Respuesta #11 en: Miércoles 31 de Agosto de 2005, 18:30 »
0
hola !!  :D

no se porque todos estan metidos en los PIC.. pero si me gustaria saber que SO hay compatibles con los atmel 89c52.. o los motorola... se mucho sobre SO.. pero nunca habia escuchado que se podian utilizar dentro de estos uP tana peuqeños...

no se si alguien me puede ayudar con esta inf..

chao

JCaf

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Para empezar bien
« Respuesta #12 en: Sábado 21 de Octubre de 2006, 04:38 »
0
Hola ADC, sabes si realmente el staff de HI-TECH te activa nuevamente el compilador PICC18 para seguir usandolo?
Pues, ya expiró mis 28 dias de DEMO, y segun leo, con enviar a support@...lo reactivarán .. es esto cierto?
Como haces? tienes la version FULL, osea, lo has comprado?

Al igual que tu, uso el HI-TECH PICC/PICC18, pues, luego de muchas razones decidi programar con este compilador, si, es muy bueno!!! y es muy preciso en cuanto a operaciones de coma flotante, tiene sus cositas, pero igualmente es muy bueno.

Ya envie a support mi peticion, espero q a mas tardar mañana me reactiven,,,,
todavia no me quiero mandar a eliminar todos las claves del programa del REGEDIT,
quiza asi consigo "decirles" a los de HI-TECH que voy a realizar una instalación limpia...
veremoss...
Saludos desde Perú

JCaf

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Para empezar bien
« Respuesta #13 en: Sábado 21 de Octubre de 2006, 04:55 »
0
Cita de: "AAV"
:o  Hola chavos del foro!!!!   Ke tan facil es migrar un programa de un PIC a otro????   Fijense que tengo que migrar un programa del PIC 14??? al PIC18F452
pero no se que tan dificil sea............ si alguien me puede sugerir algo se lo agradeceria mucho.
AVR,,,

Leo rapidamente tus preguntas acerca del compilador HI-TECH PICC18,
Yo, luego de muchas pruebas con otros compiladores, te dire que para mi en cuanto a compiladores para C los mejorcitos son :
-HI-TECH
-CC5X

ambos tienes sus "cositas", pero para realizar trabajos fuertes, definitivamente el HITECH!

Es mucho mas eficiente, compacta ok! el codigo, es muy inteligente el algoritmo de ensamblado, basta fijarse en la memoria de programa, a veces no hay instrucciones que una esperaria, aun asi escritas en el codigo fuente,,,
Su ensamblador es mucho mas estructurado, y si, no hay mucha informacion en la red,
pero, despues que uno ve el codigo en assembly que ha generado un programita hehco en C, comienza a experimentar,

Para compilar codigos hechos en Assembly x HI-TECH,  tienes que activar la opcion -P
(PreProcesador...)

Si deseas ver el codigo generado por un modulo en C, activas la opcion con -S

Y acerca del comentario de los errores de si te muestra a la hora de compilar, pues claro, como todo compilador serio te muestra, y es mas, puedes ver como ha distribuido tu codigo en la memoria (secciones de codigo, datos, interrupcion, bss, etc...) esto lo consigues en la opcion del Linker,
aunque igual lo puedes ver como en el mundo de los assemblers, a traves de los archivos MAPs que te genera....

Lo que si podria decir, que hasta ahora, he anotado algunos bugs de compilacion, como por ejemplo si olvidas de cerrar un IF- ENDIF en un codigo en assembly el compilador no te avisa que falta cerrar...

Igualmente, la version 9.5, la actual, no carga los simbolos de depuracion de alto nivel para el MPLAB, en otras palabras, para hacer el seguimiento/depuracion de tu codigo en assembly, lo haces a traves de la memoria de programa, no en tu codigo fuente.....

El IDE "HI-TIDE" es de la misma empresa, pero, personalmente, es muy lento el IDE,
para mi que uso una PENTIUM III con solo 128 M de RAM, demora demasiado el proceso de compilacion, ademas, si mal no recuerdo, la depuracion tambien no es tan rapida al iniciar,,,, esperemos una nueva version del HI-TIDE,,,