TODOPIC
Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: Manuel_B en 03 de Abril de 2007, 17:08:38
-
Hola a todos, estoy intentando introducirme en el apasionante mundo de los microcontroladores pic ¿que lenguaje de programacion me aconsejais para ir iniciandome sin tener mucha sobre programacion de pics? Muchas gracias
-
Hola Manuel_B
si hablas de sin tener mucha sobre programacion vas a estar dificil, porque tarde o temprano tendras que caer en especificaciones particulares de la arquitectura del micro en cuestión y eso sería como entrar en ensamblador, pero aquí en el foro se usa bastante el C y el Basic (también está e pascal). como no conozco el basic solo te hablaré del C (que si conozco alguito jeje)
- puedes hacer procedimientos de operaciones matematicas con suma facilidad (incluyendo partes fraccionarias).
- te olvidas de ciertas propiedades de la arquitectura (cambio de paginas por ejemplo)
- es lo mas cercano al assembler, por tanto tendras cierto control y rapidez.
- la mayoría de los compiladores de C tienen opciones de incrustar asm dentro del C.
- puedes portar con cierta facilidad el código fuente de un tipo de micro.
- el código se ve mas legible para entenderlo.
las cualidades de cada micro y familia son muchas, eso dependerá del pic que estes usando
si tu interes entra en una aplicación rápida en tiempo de desarrollo, los lenguajes de alto nivel son buena opción.
si tu interes quiere ir mas allá por una curiosidad tremenda de aprender, mi opinión es que puedes ir conociendo el ensamblador.
bueno a ver que te dicen el resto de los amigos foreros
-
se me olvida decirte que, las opciones de compiladores de C, son estas:
free:
- SDCC (http://sdcc.sourceforge.net/) (win/linux)
- elCpik (http://pikdev.free.fr/download-cpik.php3) (linux)
demos y/o pagos (sin/con limitaciones):
- pic c compiler de ccs (http://www.ccsinfo.com/content.php?page=compdemo) (win/linux)
- MPLAB C18 Student Edition (http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014) (win)
- picc lite de hitech (http://www.htsoft.com/downloads/demos.php) (win/linux)
- mikroC de mikroelectronica (http://www.mikroe.com/en/download/) (win)
- iar de iar systems (http://www.iar.com/)
esos son los que recuerdo.
-
Muchas gracias palitroquez por tu rapida respuesta en cuanto a la arquitectura de los pics he leido algo mas pero cuando empiezas a mirar codigos de programacion en los distintos lenguajes te suena todo a chino como me imajino que os habra pasado a todos al comienzo de todas formas hare caso de tu sabio consejo y me embarcare en el C o el Basic.
Saludos.
-
Para BAsic date una Vuelta por aca (http://miarroba.com/foros/ver.php?foroid=1149902&temaid=6040164) y miras mas o menos como es el Basic para PICS y de paso te checas los proyectos que se estan haciendo.
Saludos
-
Yo te recomiendo el C, ya que todos los fabricantes de microcontroladores al final, se apoyan en este lenguaje para dar soporte.
Suerte!!! ;)
-
Yo te recomiendo el C, ya que todos los fabricantes de microcontroladores al final, se apoyan en este lenguaje para dar soporte.
Suerte!!! ;)
hola me llamo fede yo empece de una con assembler nose si es lo mejor estoy trabajando con mplab 5.7 ya hice varios programitas simples me cuesta a la hora de encarar alguna problematica real!! aprovecho para preguntarles si tienen alguna explicacion del significados de las interupciones en assembler(ni idea!!!)y de como se hace un timer basico en el mismo lenguaje desde ya les agradesco sus respuestas atte.
-
En el subforo dedicado al ASM seguro que encuentras lo que deseas, hay varios post sobre ejemplitos en dicho lenguaje y algún que otro programa trata las interrupciones.
Suerte!!! ;)
-
Sin duda el C. Amortizarás mucho más tus conocimientos de C incluso aunque cambies de arquitectura.
-
El tercero a partir del Sol : C
-
offtopic:
redpic te refieres a las notas musicales con lo de "tercero a partir del sol"?
C = nota do en notación inglesa.
parecía un acertijo, jiji esas cosas me vacilan. :mrgreen:
-
Hola a todos, estoy intentando introducirme en el apasionante mundo de los microcontroladores pic ¿que lenguaje de programacion me aconsejais para ir iniciandome sin tener mucha sobre programacion de pics? Muchas gracias
El assembler te permitirá aprender cómo es la arquitectura de tu PIC.
El C te permitirá hacer tus códigos en una forma muy veloz (que los hagas tu en poco tiempo no que se ejecuten rápido) y además el C como te han dicho es el lenguaje por excelencia para microcontroladores.
Saludos
-
offtopic:
redpic te refieres a las notas musicales con lo de "tercero a partir del sol"?
C = nota do en notación inglesa.
parecía un acertijo, jiji esas cosas me vacilan. :mrgreen:
No, no había caído en esa referencia musicológica C = DO = Tercera letra, me refería un término astronómico y literario muy utilizado: El tercero a partir del Sol es la Tierra (Mercurio, Venus, Tierra), incluso hay una famosa novela de Richard Matheson con ese mismo título. :mrgreen:
-
sigo con el offtopic: :mrgreen:
El tercero a partir del Sol : C
mmm... Tierra? y que relacion tiene con la letra C? :-) mera curiosidad ...
-
CCS,Mercurio, Venus, Tierra
es un planeta mas :D
-
sigo con el offtopic: :mrgreen:
El tercero a partir del Sol : C
mmm... Tierra? y que relacion tiene con la letra C? :-) mera curiosidad ...
Solamente que es la tercera.
-
Segun un libro que he empezado a estudiar (Microcontroladores PIC. Diseño práctico de aplicaciones, autores José M. Angulo Usategui e Ignacio Angulo Martínez), el assembler es el lenguaje de los profesionales. Aqui muestran un pequeño programita en assembler y C. Al final el programa en C ocupa mucho más espacio en la memoria del pic. Que creen ustedes de esto?
-
Grandes debates, argumentos, convenientes e inconvenientes sobre los distintos lenguajes de programación encontrarás en este hilo:
http://www.todopic.com.ar/foros/index.php?topic=8118.0
Como verás, tenemos opiniones para todos los gustos.
-
Este será un tema que siempre genere controversia, puesto que los seres humanos tenemos la característica de dar nuestro punto de vista como la verdad absoluta, por eso a mi me gusta mucho un verso de una canción de un compositor cubano que dice: "la verdad de la verdad, es que no es una".
Bueno, dicho lo anterior para que nadie se ponga bravo, doy mi modesta opinión sobre este tema tan candente.
Que lenguaje usar depende principalmente de algunos factores:
- De la aplicación misma
- De los intereses y gustos del programador o diseñador de sistemas digitales
- De los conocimientos del programador o equipo de desarrollo
- De los intereses de la entidad que financia el desarrollo (para el caso de los que trabajan para una empresa)
- Otros factores
Podríamos dar todo un teque sobre cada uno de los factores, pero de eso ustedes saben bastante y han hablado suficiente, así que directo a mi criterio muy personal.
Si usted es un purista de la programación, que quiere sentirse un DIOS y saber todo lo que hará su microprocesador o microcontrolador, o es profesor de una universidad y quiere que sus alumnos aprendan bien la teoría de sistemas a microporocesadores, etc. El lenguaje de elección es el ensamblador.
Yo aprendí un montón de cosas sobre los sistemas a microcotrolador gracias al ensamblador, y creo que en las universidades que se respeten deben comenzar por allí, los amantes del hacking y los puristas utilizan este tipo de lenguajes porque sus intereses están orientados a sacar el máximo de rendimiento a sus diseños.
Sin embargo yo me decanto por el uso de lenguajes de alto nivel para la mayoría de las aplicaciones, y solamente en casos excepcionales utilizar el ensamblador, las razónes son muy simples:
- Los lenguajes de alto nivel, como C, BASIC o PASCAL permiten obtener soluciones completas en menos tiempo, debido a que la programación en alto nivel es más fácil de realizar y depurar, si bien es cierto que en el caso de los uC se consumen más recursos del sistema, hay uC en tal variedad que será difícil encontrar uno en el que nuestra aplicación no corra suficientemente bien. Por otro lado, si damos un vistazo a las últimas entregas de Microchip, veremos que muchos uC simplemente vienen siendo secuelas de versiones anteriores con más memoria de datos y programas, ejemplo: PIC16F877=>>PIC16F877A=>>PIC16F887, en cada caso se ha doblado la memoria de programas y se ha aumentado un poco la RAM, más algunas mejoras más bien cosméticas.
- La mayoría de los compiladores de alto nivel permiten la coexistencia de código de alto nivel y de código en ASM
- Es una falacia afirmar que una apliación profesional tiene que estar programada en ensamblador: De hecho, mientras desarrollaba mi cursillo de RTOS aquí en el foro, pude comprobar que la mayoría de las empresas dedicadas al desarrollo de soluciones profesionales no hacen sus sistemas en ASM, precisamente porque la programación con ensamblador reduce su competitividad y aumenta el tiempo de desarrollo, la cantidad de errores en sistemas grandes y dificulta el mantenimiento del software, etc, etc. y de hecho actualmente la gran mayoría de los sistemas medianos y grandes se programan con algún tipo de Sistema Operativo de tiempo Real (RTOS)
No es que sea un acérrimo defensor de los lenguajes de alto nivel y actualmente de los RTOS, sino que en la medida que el nivel de integración crece, también las herramientas de desarrollo van evolucionando y cosas como los lenguajes de alto nivel, antes vedados para el mundo de los uC, son ahora la elección por defecto para los profesionales, el resultado de ello es palpable, cada día vemos montones de productos nuevos o mejoras a estos en el mercado y eso no solo se debe al desarrollo de la electrónica, sino al desarrollo paralelo de las herramientas de desarrollo y puesta a punto de sistemas digitales, al uso de lenguajes de alto nivel que mejoran la productividad en varios órdenes sobre la programación en ASM y recientemente a la escalda de los RTOS en el desarrollo de sistemas digitales.
Mi consejos:
- No se vuelva fanático de ningun entorno de desarrollo o métodología de trabajo, cada una tiene sus aciertos y desaciertos, ventajas y desventajas.
- Antes de comenzar a programar, piense, razone saque conclusiones y valore el uso de una u otra herramienta de programación o el uso combinado, pero no elija por su temperamento o porque no tiene intensiones de aprender a programar con un nuevo lenguaje
Espero que mi criterio no caliente mucho este hilo, pero si se calienta, no importa esa es una de las cosas que mejor se nos dan aquí.
Saludos Reinier
-
En este hilo se habla especificamente de las distintas ventajes e inconvenientes de los compiladores:
http://www.todopic.com.ar/foros/index.php?topic=12688.0
Un saludo
-
Un hilo que hace unos meses/años hizo polémica donde se trata el C vs ASM. Es interesante ya que hay varios 'argumentos' expuestos que creo que son muy valederos. Hay algunos posts eliminados porque un exmiembro del foro se fue y pidió que sus mensajes fueran eliminados, muchos lo recordarán...
El hilo es
Tema Dividido. ¿ASM vs C? (http://www.todopic.com.ar/foros/index.php?topic=14503.0)
Reinier coincido plenamente contigo (Ver (http://www.todopic.com.ar/foros/index.php?topic=14503.msg88428#msg88428)) . Creo que estas cuestiones son la razón por la cual siempre hace falta 'criterio' para decidir ya que los diseños de sistemas embebidos contemplan tantos elementos y disciplinas que sencillamente ser categórico en que una solución es siempre la mejor, sería no solo soberbio sino que además seria hasta infantil.
Saludos