# Que lenguaje de programación me recomiendan para aprender microcontroladores



## juanes79 (Dic 13, 2010)

Hola amigos, les consulto que lenguaje de programación me recomiendan para aprender a programar microcontroladores y cual curso online gratuito o que este en videotutoriales me recomiendan para aprender sobre este tema.

saludos y mil gracias.


----------



## jaimepsantos (Dic 13, 2010)

Que microcontrolador usas, yo uso c, es universal y de facil entendimiento


----------



## antiworldx (Dic 13, 2010)

Para aprender, si no sabes nada de nada, el C.
Si quieres aprender a programar a la antigua, el ensamblador.

Te recomiendo el C para iniciar.


----------



## jaimepsantos (Dic 13, 2010)

Si igual yo aprendi un poco de ensamblador, pero creo que c es mejor, el ensamblador es muy especifico de cada marca, o de cada micro :S, pero eso me abrio los ojos a como interactun de verdad el software y el hardware


----------



## antiworldx (Dic 14, 2010)

A mi me gusta ensamblador, no uso C para microcontroladores, por que me gusta saber donde esta todo en cada momento, y a la hora de depurar, no quedan dudas de lo que ocurre en el micro, pero como comentas, la desventaja es que hay que aprenderlo para cada familida de microcontrolador.


----------



## jaimepsantos (Dic 14, 2010)

Si como dices depende del enfoque que le queramos dar, si mas entrado en hardware o software, igual deberiamos preguntarle a juanes79, su enfoque de eso dependera la respuesta ideal.


----------



## Elizabeth Bathory (Dic 14, 2010)

los mejores son primeramente el ensamblador y luego C los demas lenguajes como basic, visual b no me agradan.


----------



## antiworldx (Dic 14, 2010)

Elizabeth Bathory dijo:


> los mejores son primeramente el ensamblador y luego C los demas lenguajes como basic, visual b no me agradan.



A mi tampoco XD...


----------



## cris3D (Dic 14, 2010)

estoy de acuerdo con ustedes, usar asm es interesante debido a que se maneja totalmente los recursos del sistema a antojo, pero a la hora de migrar entre sistemas se convierte en algo tedioso, 

en mi opinión depende de que marca quieras iniciar, por ejemplo de pic hay bastante información así que no representaría problema alguno, pero si inicias con ST pues.. te convendría C ya que por lo menos tendrías soporte por todos lo que ya programamos en C,

saludos


----------



## electroconico (Dic 14, 2010)

También C por la fácil interpretación y portabilidad,todos coíncidimos en lo universal.

Aunque siempre es bueno saber algo de asm para esos detallitos y conocer la arquitectura del uC.


----------



## unmonje (Dic 14, 2010)

Para mi, Tiene que ver con el perfil de cada persona...mas el uso final.
A mi NO me gusta escribir mucho y me gusta tener control absoluto de lo que hago,por eso elijo el 
-Assembler-

Para vagos, anciosos y que NO les importe ,NO PODER sacarle todo el jugo a un asunto ,y depender mucho de las  empresas  -programadoras de C-(las cuales tiene derechos sobre el compilador)

- C-  , es la elecciòn !!!


----------



## antiworldx (Dic 14, 2010)

unmonje dijo:


> A mi NO me gusta escribir mucho y me gusta tener control absoluto de lo que hago,por eso elijo el
> -Assembler-



este... en assembler es donde mas se escribe...


----------



## unmonje (Dic 14, 2010)

antiworldx dijo:


> este... en assembler es donde mas se escribe...



Debe de ser en, TUS programas...jajaja

En los mios ,pongo un encabezado breve , para recordar que hacia la rutina y por ahi...
algun detalle importante poco habitual...despues lo pongo en libreria,corto y pego.

Las declaraciones de C ,son ,para mi, engorrosas,puntillosas,y mas.
(..y no me evitan hacer las declaraciones de assembler)

Pero , ademas,,, tengo la costumbre de escribir un sistema operativo -generico- para los
MICRO de una familia y un apartado para las particularidades de cada chip...y listo.
Este sistema operativo trata al micro   como un PLC ,aprovechando al màximo las capacidades del mismo,incluso las EPROM  buid-in.
El que escribi hace unos años ,para las PIC en 2 versiones 16F y 18F  ,funcionan muy bien..

Luego,,,solo escribo la -aplicacion del usuario final -   ,en las paginas mas altas.

Me llevò 6 meses de laburo hacerlas,pero satisfecho estoy...Saludos.


----------



## antiworldx (Dic 14, 2010)

Mucho cuidadito sobre como refieres por favor... que suelo exaltarme a veces muy rapido y las cosas no terminan bien para nadie.

Y no creas que inventaste el hilo negro, por que yo tambien trabajo un sistema operativo multihilos y con servicios. Por eso se acortan las tareas. 
Asi que en tus programas tambien son igual de largos que los mios.

Pero aun asi, son menos lineas en C hacer un bucle, que en assembler. Ho asi, y quiero verte haciendo calculos fraccionarios con signo en punto fijo de 32 bits.

No me quieras venir a enseñar el padre nuestro.


----------



## unmonje (Dic 14, 2010)

antiworldx dijo:


> Mucho cuidadito sobre como refieres por favor... que suelo exaltarme a veces muy rapido y las cosas no terminan bien para nadie.
> 
> Y no creas que inventaste el hilo negro, por que yo tambien trabajo un sistema operativo multihilos y con servicios. Por eso se acortan las tareas.
> Asi que en tus programas tambien son igual de largos que los mios.
> ...




No se que habrà sido , pero ,tu texto,me dio a pensar que algo escrito te molestò...en fin lo lamento,ya que creo, uno no entra a lugares como este a discutir sobre nada , sino ,me parece,al menos en mi caso...a  ayudar a otros.

Respecto al asunto,lo mio ,pretendia ser una descripciòn de mi criterio a tu pregunta.
No entendia que hubiera descubierto nada,menos el hilo negro...
Respecto al punto flotante y mas...en ese caso , aplicaria el proverbio que dice,
-A cada tuerca su llave.Es decir,usaria un micro de 32 bits,con ALU que lo haga solo,aunque en el pasado ,he tenido que hacer rutinas de esas para chip menos poderosos....Saludos.


----------



## antiworldx (Dic 14, 2010)

De ser así, todo en orden, sin mas palabra al respecto. Y sigamos con el tema. que da mucho que hablar.


----------



## ecotronico (Dic 14, 2010)

Hola, te explico mi punto de vista:

*Ensamblador *
Ventaja: así tendrás el control completo de tu microcontrolador, sea la marca que sea. Conocerás los tiempos en ejecutar, la memoria utilizada, etc.
Desventaja: hay rutinas engorrosas y toma más tiempo en volverse "experto".

*Lenguaje C*
Ventaja: de alto nivel, universal, pocas líneas de código, más extendido.
Desventaja: De todas formas necesitas conocer las instrucciones de tu microcontrolador y los bancos de memoria (si corresponde). No tienes el control completo de tus rutinas, ni siquiera sabrás cuánto tardan en ejecutarse.

Por otro lado, y si no me equivoco, al iniciarse en microcontroladores es más fácil conseguir errores al escribir en C, que en ensamblador; por algo los foros están llenos de dudas acerca de C. 

Es mi opinión y corríjanme si no estoy en lo cierto.


----------



## ByAxel (Dic 14, 2010)

Déjà vu?? nooo, es una ramificación al mismo tema... 
ASM, basic , C y otros...
salu2


----------



## Elizabeth Bathory (Dic 14, 2010)

Claro primero debes aprender assembler, por que sii intentas programar en C o en cualquier otro lenguaje de mayor nivel sin tener minimas bases de assembler, te vas a pegar muchas embolatadas que terminan siendo grandes dolores de cabeza, y muchas veces son cositas sencillas que te estancan. 

Conclusion: Tienes que conocer assembler basico y luego migrar al lenguaje que mas te guste.


----------



## kikoaaf (Dic 14, 2010)

Yo, en primer lugar, al que no sabe nada, pero nada de nada sobre que es programar, le recomendaria que se iniciara en Pascal, si, ya se que en pascal no se pueden hacer muchas cosas (o ninguna quiza), pero recordemos que fue desarrollado especificamente como un lenguaje de aprendizaje, las declaraciones que se utilizan son muy sencillas, en realidad es muy sencillo el lenguaje en si. 
Luego de aprender un poco de Pascal, y por consiguiente, programacion en general, creo que lo mas adecuado es proseguir con "C", no aconsejo assenmbler porque la verdad que lo desconozco, he visto algun codigo y me parecio engorroso, mas que nada para el que se inicia.
Bueno, ese es mi punto de vista, saludos.


----------



## antiworldx (Dic 14, 2010)

No recoomiendo usar basic o pascal o cualquier otro pseudolenguaje. Cierto que es facil, pero lo malo es que he visto, que quienes inician con esas cosas, jamas aprenden C y mucho menos Assembler y acaban metidos en cada embrollo...
No recomiendo simplemente, por que si vas a programar un micro, es por que necesitas tener conocimiento del mismo.


----------



## juanes79 (Dic 14, 2010)

Gracias a todos popr las sugerencias y recomendaciones acerca de lenguaje que debo utilizar. Por todo lo que analice de sus aportes , pienso que voy a empezar por el lenguaje c. En mi trabajo basicamente lo que se hace con los microcontroladores, es programarlos para controles o secuanciadores de varias salidas ( 1,2,4,6,10,13 salidas). se programan para que estos controles manejen mangueras luminosas y hagan varas secuencias dependiendo la programación. Tambien se utilizan los micro para realizar dimerizado ( atenuacvión de la luz de forma lenta). 
Los microcontroladores que se utilizan son los siguientes: pic 16f84-16f873A-16c54-12f675-
16F883.

Si conocen información que me puede servir para programar en c de manera detallada y clara o si tienen algunos diagramas o programas les pido el favor que me den a conocer estos para poder tener buen material de estudio. Los escvucho con paginas recomendadas y si conocen de algun curdso en videotutorial sobre el tema desde lo mas basico.

Saludos y mil gracias.


----------



## antiworldx (Dic 15, 2010)

Eso si, haymucha informacion en el foro... solo es cosa que pongas en el buscador algo parecido a "controlar luces en pic" o algo similar. Creo que vi por ahi tambien un tutorial de pics y otro de C.


----------



## electroconico (Dic 15, 2010)

Si vas a trabajar con la serie 16F ó menores te recomiendo CCS C compiler(pic c).
Si vas con familia 18F 24f , etc... C18 C30 de microchip.

Saludos!


----------



## antiworldx (Dic 15, 2010)

apoyo la idea                     ...


----------



## unmonje (Dic 15, 2010)

kikoaaf dijo:


> Yo, en primer lugar, al que no sabe nada, pero nada de nada sobre que es programar, le recomendaria que se iniciara en Pascal, si, ya se que en pascal no se pueden hacer muchas cosas (o ninguna quiza), pero recordemos que fue desarrollado especificamente como un lenguaje de aprendizaje, las declaraciones que se utilizan son muy sencillas, en realidad es muy sencillo el lenguaje en si.
> Luego de aprender un poco de Pascal, y por consiguiente, programacion en general, creo que lo mas adecuado es proseguir con "C", no aconsejo assenmbler porque la verdad que lo desconozco, he visto algun codigo y me parecio engorroso, mas que nada para el que se inicia.
> Bueno, ese es mi punto de vista, saludos.




Bueno, afortunadamente los PIBES que diseñan los micro ,se dieron cuenta que los programadores -mandan- y aceptaron que debian hacer micros con pocas instrucciones.
INTEL (los copiones ,lo siguieron) ,se engolocinò y tubo que pagar el precio con sus larguisimos paquetes de instrucciones.
Los programadores en tanto usaban siempre las primitivas,dejando oscioso, gran parte de la electrònica !! jajaja 
De ahi salieron las PIC y otras,retornando a la vieja estructura Harvard.(banco de DATOS/banco de comandos) me encantò !!


----------



## HADES (Dic 15, 2010)

Miren mucha yo en lo personal uso Basic y Jamas me ha dado mucho merengue a la hora de hacer progris para lecturas, stepper, o cualquier otra fumada que se me antoje sencillamente lo considero un tanto mas amigable y pues de peso tampoco en fin Yo el basic.

saludos y se cuidan ( XD )


----------



## macraig (Dic 15, 2010)

Por corregir varias imprecisiones:

1. Con C SI TIENES EL CONTROL COMPLETO DEL MICRO. Puedes incluso incluir subloques de codigo directamente en assembler en medio de tu codigo C. Es decir puedes escribir un programa en C con determinadas partes en assembler.

2. C es mejor, por que es mas facil mantener una estructura coherente. Lo que hace a tus programas escritos en C mas faciles de mantener que los escritos en assembler. C te ayuda a consentrarte mejor en la idea que en los detalles de la implementacion, lo que se traduce en menores tiempos de desarrollo. C es portable, lo que significa que transladar programas de un micro a otro no es tan complicado como hacerlo en assembler.

3. Tu puedes saber exactamente cuantos ciclos de reloj necesita cada instruccion en C. Muchos sistemas en tiempo real se escriben en C. 

Salu2.


----------



## Moyano Jonathan (Dic 15, 2010)

Para la poderosa familia de micros AVR recomiendo ampliamente usar GCC en conjunto con rutinas en ASM.

Algo que quiero destacar es que en AVR - GCC, en caso de querer realizar las funciones en ASM no hace falta hacerlo con ASM - EMBEBIDO....algo bastante complejo en GCC....sino que escribis todas las funciones en ASM puro para AVR y luego con un archivo include declaramos todas las funciones como extern functions... entonces podés compilar directamente tus proyectos usando GCC y ASM.


----------



## electroconico (Dic 15, 2010)

Moyano Jonathan dijo:


> Para la poderosa familia de micros AVR recomiendo ampliamente usar GCC en conjunto con rutinas en ASM.
> 
> Algo que quiero destacar es que en AVR - GCC, en caso de querer realizar las funciones en ASM no hace falta hacerlo con ASM - EMBEBIDO....algo bastante complejo en GCC....sino que escribis todas las funciones en ASM puro para AVR y luego con un archivo include declaramos todas las funciones como extern functions... entonces podés compilar directamente tus proyectos usando GCC y ASM.



Interesante lo del ASM con el GCC, no lo he probado ni habia leído esto que comentas.

ME gusta bastantito el GCC y el atmega8


----------



## juanes79 (Dic 16, 2010)

Hola amigos, les pregunto si antes de realizar un proyecto real con pic conviene primero realizar una simulación con el programa proteus y que tan confiable o buena puede ser esta.
Espero recibir sus comentarios.

Saludos y mil gracias.


----------



## antiworldx (Dic 16, 2010)

juanes79 dijo:


> Hola amigos, les pregunto si antes de realizar un proyecto real con pic conviene primero realizar una simulación con el programa proteus y que tan confiable o buena puede ser esta.
> Espero recibir sus comentarios.
> 
> Saludos y mil gracias.



Nooooooooooooooooooooo! Proteuss es "SCRAP"!!!!

Usa depurador... Yo ni si quiera apoyo la revision de codigos simulados en proteuss.

P.D. ATmega y dsPIC son mis dos pulgares de batalla.


----------



## electroconico (Dic 16, 2010)

Proteus para cosas relativamente sencillas,te puede romper la cabeza con sus fallos , me ha pasado que en proteus no sirve mi aplicación y al desesperarme lo montaba en físico y uhh andaba joya y también al revés 

Saludos!


----------



## antiworldx (Dic 16, 2010)

"El mundo feliz de proteuss"... Todo funciona en proteuss, pero a la hora de la verdad... Sorpresa!!! Me he encontrado errores en los programas revisados, como el hecho de que el codigo quiere acceder zonas de memorias inexistentes en el microcontrolador, y proteuss simplemente, lo ejecuta, creando zonas de memoria DE LA NADA!!!. Ese es uno de los mas comunes, entre otros que me hizo pensar que proteuss es solo un hobbie de dummys.


----------



## Dr. Zoidberg (Dic 16, 2010)

antiworldx dijo:


> Ese es uno de los mas comunes, entre otros que me hizo pensar *que proteuss es solo un hobbie de dummys*.


   Muy parecido a eso!!!!!

El problema real es que Proteus solo es una herramienta, pero la mente del diseñador debe estar detrás de ella para saber usarla correctamente. En las escuelas y universidades, muchos docentes han tomado la estúpida decisión de usar una herramienta de simulación como un banco de pruebas real...y mas allá de los errores de Proteus, no se enseña como simular correctamente...y mucho menos se enseña como realizar pruebas reales en un circuito digital armado....Total, en Proteus ponen el osciloscopio y ya está...sale el dibujito, pero si hacés lo mismo en el circuito real, la ondas dejan de ser "cuadradas", se alteran las frecuencias de los osciladores, intentan usar el osciloscopio como un analizador lógico (y si lo logran, son MAGOS!)...en fin...toda una sarta de tonterías y problemas que con las herramientas de simulación no existen...Ohhh...que COOOOOOOL!!!!


----------



## ByAxel (Dic 16, 2010)

> El problema real es que Proteus solo es una herramienta, pero la mente del diseñador debe estar detrás de ella para saber usarla correctamente.


Coincido.


> En las escuelas y universidades, muchos docentes han tomado la estúpida decisión de usar una herramienta de simulación como un banco de pruebas real...y mas allá de los errores de Proteus, no se enseña como simular correctamente...


Gran problema.


> Total, en Proteus ponen el osciloscopio y ya está...sale el dibujito, pero si hacés lo mismo en el circuito real, la ondas dejan de ser "cuadradas", se alteran las frecuencias de los osciladores


Te respondo con:


> *Proteus solo es una herramienta, pero la mente del diseñador debe estar detrás de ella para saber usarla correctamente.*


1ro Mi experiencia; en mis 4 añitos con los microcontroladores solo he tenido tropiezos los primeros 6 meses, luego me salido todo bien (simular y llevar el circuito a lo real) ¿Por que? no se... será que gracias a todo lo que aprendí con la eléctrónica y la *experiencia* de probar y probar con todo!! tal vez.

2do:





> pero si hacés lo mismo en el circuito real, la ondas dejan de ser "cuadradas", se alteran las frecuencias de los osciladores, intentan usar el osciloscopio como un analizador lógico (y si lo logran, son MAGOS!)...en fin...toda una sarta de tonterías y problemas que con las herramientas de simulación no existen...Ohhh...que COOOOOOOL!!!!


Para empezar yo no le veo punto de inicio para criticar al *"simulador"* (no lo defiendo) ya que en un circuito real hay muchas más variables a tomar en cuenta que por lo general son evitadas... digo ¿Un transistor del mismo tipo es exactamente igual a otro del mismo tipo? NOOO... el simulador precisamente el Proteus simula eventos "Ideales", muy pocos reales y si pudiera seria el señor simulador que solo pudiera correr en una PC de última generación que solo las universidades más prestigiosas lo pudieran obtener!!! exagero? Si pero es la verdad...
Más nada, todo eso solo es tu punto de vista y personalmente uso ambas cosas (Simulo y prueba real) no dicen que ¡la práctica hace al maestro! pero admito que últimamente no necesito simular nada o hacer una prueba real ya que estoy seguro de que va a funcionar ¿Por que?... al parecer he aprendido de una forma distinta a adelantarme a los sucesos de algún circuito que haga; yo creo que esa pueda ser la iniciativa de los docentes -no se- pero ¿quién dice que el método para aprender siempre va a ser el mismo para todos?...

En fin, todo esto solo respecto a este simulador, no pretendo englobar todo... 
salu2


----------



## unmonje (Dic 16, 2010)

antiworldx dijo:


> "El mundo feliz de proteuss"... Todo funciona en proteuss, pero a la hora de la verdad... Sorpresa!!! Me he encontrado errores en los programas revisados, como el hecho de que el codigo quiere acceder zonas de memorias inexistentes en el microcontrolador, y proteuss simplemente, lo ejecuta, creando zonas de memoria DE LA NADA!!!. Ese es uno de los mas comunes, entre otros que me hizo pensar que proteuss es solo un hobbie de dummys.




jajajja...para simplificar....me quedo con ASM...siempre se que funciona...!!
(solo confio en lo que yo programo)



macraig dijo:


> Por corregir varias imprecisiones:
> 
> 1. Con C SI TIENES EL CONTROL COMPLETO DEL MICRO. Puedes incluso incluir subloques de codigo directamente en assembler en medio de tu codigo C. Es decir puedes escribir un programa en C con determinadas partes en assembler.
> 
> ...




Comparto en general...pero al final,con todas las ventajas,personalmente me quedo con ASM!!
Respecto a -portable- que es un exelente argumento para grandes sistemas ,no se me da en PICs !!!   Hice mucho en C...pero me aburre esperar a escribir todo el còdigo. jajaja


----------



## Dr. Zoidberg (Dic 16, 2010)

ByAxel dijo:


> 2do:
> Para empezar yo no le veo punto de inicio para criticar al *"simulador"* (no lo defiendo) ya que en un circuito real hay muchas más variables a tomar en cuenta que por lo general son evitadas... digo ¿Un transistor del mismo tipo es exactamente igual a otro del mismo tipo? NOOO... el simulador precisamente el Proteus simula eventos "Ideales", muy pocos reales y si pudiera seria el señor simulador que solo pudiera correr en una PC de última generación que solo las universidades más prestigiosas lo pudieran obtener!!! exagero? Si pero es la verdad...



Yo no critico al simulador...y de hecho, a veces uso un simulador si pretendo diseñar algo que no es muy trivial. Lo que yo critico es el uso indiscriminado que se hace de una herramienta y la falta de entendimiento de quienes la usan, sobre todo para comprender sus limitaciones y aprender a modificar el comportamiento de los dispositivos que participan en el modelo simulado.

El otro problema es que simular "cosas digitales" es relativamente simple, por que hay poco para tocar, a menos que se trate de código programado o frecuencias de reloj o ciclos de trabajo. Pero en simulación analógica si se pueden representar las "diferencias" entre componentes y por ejemplo, hacer un barrido entre valores de hfe para ver como se comporta el circuito cuando cambio los componentes, o barrer en ft para pobar la estabilidad de un circuito...y esto es lo mas valioso de la simulación - al menos para mí - pero es lo que poca gente sabe explotar...y NO, no hace falta una PC de ultima generación ni mucho menos para usar este tipo de simuladores. Yo he usado - hace tiempo ya - una versión de PSPICE para probar un simulador de ondas de ECG...y lo corría bajo DOS en una PC 486DLC de 16Mhz. Pero claro, no tenía editor gráfico y había que definir a pedal y numerar a mano los nodos del circuito...pero tampoco era algo de otro planeta.


----------



## Beamspot (Dic 16, 2010)

Generalmente, el simulador nunca me ha servido más que para encontrar respuestas frecuenciales en analógica.

Apoyo el C y el GCC, pero para entender de que va esto, es necesario un conocimiento de ensamblador. Escribir código largo es mucho más rápido y eficiente en C, más fácil de mantener, y más 'portable' (esto depende mucho de cómo lo escribas).

Por desgracia, el C es como una gruesa alfombra bajo la cual se esconden muchas veces las miserias y virtudes de los micros, pasando desapercibidas. El ensamblador desvela muchos misterios.

Personalmente, C, AVR, ARM Cortex M3, PCB directa (nada de protoboards, simulaciones ni historias), y muchas horas de echarle vueltas.

Por cierto, yo tampoco apoyo el autoruteo de PCB's. Estoy hasta las narices de tener que solucionar problemas porque alguien que de ingeniero no tiene más que un papel lo usa hasta las narices, y luego, al no funcionar nada, me toca a mí el solucionar los problemas 'extraños' que tiene. Especialmente porque todo le funciona correctamente en su simulación de proteus, y luego en la realidad, 'pierde los voltios por el camino'.


----------



## ByAxel (Dic 16, 2010)

Beamspot dijo:


> Apoyo el C y el GCC, pero para entender de que va esto, es necesario un conocimiento de ensamblador. Escribir código largo es mucho más rápido y eficiente en C, más fácil de mantener, y más 'portable' (esto depende mucho de cómo lo escribas).
> 
> Por desgracia, el C es como una gruesa alfombra bajo la cual se esconden muchas veces las miserias y virtudes de los micros, pasando desapercibidas. El ensamblador desvela muchos misterios.
> 
> Personalmente, C, AVR, ARM Cortex M3, PCB directa (nada de protoboards, simulaciones ni historias), y muchas horas de echarle vueltas.


Cierto.
Por lo menos ASM y C para evitar que algo funcione por MAGIA... y por cierto para los ARM ¿es cierto que no tiene caso programar en C? leí que se escribe menos código en asm que en C... eso del Thumb Instruction Set me gusto!!, me equivoco?



Beamspot dijo:


> Por cierto, yo tampoco apoyo el autoruteo de PCB's. Estoy hasta las narices de tener que solucionar problemas porque alguien que de ingeniero no tiene más que un papel lo usa hasta las narices, y luego, al no funcionar nada, me toca a mí el solucionar los problemas 'extraños' que tiene. Especialmente porque todo le funciona correctamente en su simulación de proteus, y luego en la realidad, 'pierde los voltios por el camino'.


 muy cierto.


----------



## antiworldx (Dic 16, 2010)

ByAxel dijo:


> Más nada, todo eso solo es tu punto de vista y personalmente uso ambas cosas (Simulo y prueba real) no dicen que ¡la práctica hace al maestro! pero admito que últimamente no necesito simular nada o hacer una prueba real ya que estoy seguro de que va a funcionar ¿Por que?... al parecer he aprendido de una forma distinta a adelantarme a los sucesos de algún circuito que haga; yo creo que esa pueda ser la iniciativa de los docentes -no se- pero ¿quién dice que el método para aprender siempre va a ser el mismo para todos?...



Yeah! Tuve un profesor de circuitos lógicos que... me enseño tan bien las propiedades de los circuitos combinacionales, que pocas veces tengo que ir a un osciloscopio a ver si estoy teniendo un problema de respuesta de los circuitos.
Y siempre he dicho, para ver que demonios hace un programa, nada mejor que usar un depurador. Con el depurador, que raras veces los integran con errores, sabras a ciencia cierta que esta pasando ahi dentro.
Nunca he tenido que usar el proteuss. Desde que alguien me lo mostro y me dijo que puede tener fallos, simplemente no lo vi con buena cara. Y despues que vi que tipo de fallos tenia, simplemente se ha vuelto un motivo de broma geek de muy mal gusto.


----------



## unmonje (Dic 16, 2010)

antiworldx dijo:


> Yeah! Tuve un profesor de circuitos lógicos que... me enseño tan bien las propiedades de los circuitos combinacionales, que pocas veces tengo que ir a un osciloscopio a ver si estoy teniendo un problema de respuesta de los circuitos.
> Y siempre he dicho, para ver que demonios hace un programa, nada mejor que usar un depurador. Con el depurador, que raras veces los integran con errores, sabras a ciencia cierta que esta pasando ahi dentro.
> Nunca he tenido que usar el proteuss. Desde que alguien me lo mostro y me dijo que puede tener fallos, simplemente no lo vi con buena cara. Y despues que vi que tipo de fallos tenia, simplemente se ha vuelto un motivo de broma geek de muy mal gusto.




Comparto  fuertemente...esta opiniòn....(Cuando mas elementos agregas a un sistema..
la tendencia a la falla aumenta  geometricamente ,por eso ASM).....
(bibliografìa :Sistemàntica   jajaja)


----------



## juanes79 (Dic 16, 2010)

Mil gracias por sus valiosas respuestas y consejos que me han dado a conocer en este maravilloso foro. Les pregunto que pasos logicos debo seguir para aprender sobre como programar pic en lenguaje C, que tipo de programa debo utilizar para compilar los siguientes microcontroladores que tengo deisponibles en mi sitio de trabajo (pic 16f84A-16F873A-16F883-16C54-12F508). Tambien les pregunto si conocen de algun curso ya sea en pdf o en videotutoriales, revistas, libros y todo tipo de docümentos que me sirva para aprender a programar en lenguaje C con los micros anteriormente mensionados. 
Creo que deboo empezar conociendo la arquitectura de cada microcontrolador, luego entender como trabajan las instrucciones y rutinas en lenguaje C y por ultimo ponerme a programar y montar el circuito real.

espero que me ayuden las personas que tienen buena experiencia en el tema para saber escoger el mejor camino en este maravilloso mundo de la programación que apenas comienzo. Les recuerdo que apenas voy a comenzar desde cero.

Saludos y mil gracias.


----------



## antiworldx (Dic 16, 2010)

para pics... MPLAB con el compilador C30


----------



## Pelelalo (Dic 17, 2010)

en cuanto recurras a san google tendrás todo lo que precises del micro que quieras. El 16F84a es una opción para empezar. C o ASM. Joder, AMBOS. Con ambos disfrutas y supongo que ese es tu objetivo. 

Con respecto a que cada "bicho" tiene sus rutinas; pues sí, pero tampoco creas que aprender ASM con un micro no te vale para otro.

MPLAB muy buena opción (eso sí, pagando o hackeando). Hay opciones libres. Pero de nuevo te sugiero que busques. TODO lo que consigas por tus medios te da mayor satisfación.

Tampoco estaría mal que empezaras con una consola linux y el compilador gcc. Te ayuda también a entender qué es un lenguaje de programación, código fuente, objeto, etc.


----------



## ByAxel (Dic 17, 2010)

radioFM dijo:


> Con respecto a que cada "bicho" tiene sus rutinas; pues sí, pero tampoco creas que aprender ASM con un micro no te vale para otro.


Hablando solo de los PICs eso no es tan cierto ya que se divide entre gamas y pues los PIC12/16 tienen instrucciones idénticas... los PIC16 unas más. Respecto a los PIC18F ya es distinto pero al igual que es toda una familia de PICs que comparten las mismas instrucciones.



radioFM dijo:


> MPLAB muy buena opción (eso sí, pagando o hackeando). Hay opciones libres. Pero de nuevo te sugiero que busques. TODO lo que consigas por tus medios te da mayor satisfacción.


 MPLAB es gratis y hay versiones para estudiantes de sus compiladores C que también son gratis.


----------



## Pelelalo (Dic 17, 2010)

ByAxel dijo:


> Hablando solo de los PICs eso no es tan cierto ya que se divide entre gamas y pues los PIC12/16 tienen instrucciones idénticas... los PIC16 unas más. Respecto a los PIC18F ya es distinto pero al igual que es toda una familia de PICs que comparten las mismas instrucciones.



Estoy completamente de acuerdo, pero si aprendes para un PIC, apenas necesitas esfuerzo para programar con otro. Evidentemente tienen sus diferencias, pero a mi me ha valido la experiencia con un PIC para programar procesadores PowerPC405 de IBM.

Lo que quiero decir es que uno aprende, por ejemplo, a programar con lenguaje orientado a objeto y a continuación (con un poco de paciencia) aplica sus conocimientos a cualquier otro tipo de lenguaje con las mismas cualidades.

Ese es mi caso, al menos.



ByAxel dijo:


> MPLAB es gratis y hay versiones para estudiantes de sus compiladores C que también son gratis.



PUes juraría que hace 2 años cuando enganche un MOWAY robot programado por un PIC (no recuerdo cual) al MPLAB le tuve que poner el crack.
Estaré confundido, soy un enreda (me encanta pillar nuevos bichos; PICs, procesadores de 8 bits, fpga, dsp, arm, etc y probarlos) y muchas veces lio las plataformas de programación.

Gracias por la corrección


----------



## ByAxel (Dic 17, 2010)

radioFM dijo:


> a mi me ha valido la experiencia con un PIC para programar procesadores PowerPC405 de IBM.
> 
> Estaré confundido, soy un enreda (me encanta pillar nuevos bichos; PICs, procesadores de 8 bits, fpga, dsp, arm, etc y probarlos) y muchas veces lio las plataformas de programación.


 Eso es un logro muy bueno .


----------



## Pelelalo (Dic 17, 2010)

ByAxel dijo:


> Eso es un logro muy bueno .



No estoy del todo de acuerdo. Como bien me definió mi padre, una vez logras algo te aburres y quieres probar otra cosa. Conozco varios enredos. DOMINO ninguno.

Me pasa con todo en la vida (dios no me oiga mi mujer). Me costo forrar un armario 1 día. Tres armarios más: 2 meses a base de tirones de oreja.


----------



## antiworldx (Dic 18, 2010)

pues yo tengo un lema... si aprendes a programar un micro en ensamblador, aprendes a programar todos los micros... Todos manejan la misma logica y comparten los perifericos... unos con mas opciones que otros, pero en escencia es lo mismo. 
El micro que mas he tardado en poder explotarlo es el dsPIC, pero no por que no le entienda, si no que trae una cantidad de perifericos, y de opciones en ellos, que me he tardado en irlos dominando todos correctamente. 
Por cierto, cada año viene un representante de microchip a mi universidad, y el dijo, que la unica diferencia en el compilador C de la comprada a la estudiante, es la optimizacion del codigo. La version estudiante genera archivos .hex mas grandes. De ahi en mas es totalmente funcional. Yo lo he usado muy poco, puesto que ya he externado que prefiero el assembler.
Mis dos microcontroladores de batalla son el ATmega8535 y el dsPIC30F4011. A ultimas fechas los he usado simultaneamente en proyectos comunicados por el protocolo SPI.


----------

