Programacion o diseño electronico?

Para qué? Ya estudié Ingeniería Electrónica en la Universidad, aprendí a programar mientras estudiaba. Cuando quise profundizar, nadie tenía idea y me tuve que buscar yo los libros, y estudiar, estudiar y estudiar.
Conclusión: luego tuve que darle cursos a los profesores universitarios de Sistemas (o como corno se llame) para que aprendieran todo lo que me había tragado por mi cuenta...y para colmo, pocos lo entendían.


Jaja, sos un grande.


Yo no diseño grandes cosas entonces me alcanza lo analógico, este año use micro-microcontroladores (motorola) programando en assembler pero aun todavía me vuelvo loco, estoy esperando a este año que tengo una materia sobre microcontroladores para poder empezar nuevamente y profundizarme mas.
 
Yo no diseño grandes cosas entonces me alcanza lo analógico, este año use micro-microcontroladores (motorola) programando en assembler pero aun todavía me vuelvo loco, estoy esperando a este año que tengo una materia sobre microcontroladores para poder empezar nuevamente y profundizarme mas.

El problema no es el "tamaño" de lo que diseñes, sino la cantidad de herramientas que conocés y podés usar para implementar tu diseño. Los microcontroladores son hermosas herramientas para solucionar una infinidad de problemas...si sabés lo que estás haciendo. He visto algunos por acá que para hacer un monoestable pretender usar un PIC :eek:.

Claro, cuando la unica herramienta que tenés es un martillo, todo lo que tengas que arreglar se parece a un clavo....no sé si soy claro...
 
El problema no es el "tamaño" de lo que diseñes, sino la cantidad de herramientas que conocés y podés usar para implementar tu diseño. Los microcontroladores son hermosas herramientas para solucionar una infinidad de problemas...si sabés lo que estás haciendo. He visto algunos por acá que para hacer un monoestable pretender usar un PIC :eek:.

Claro, cuando la unica herramienta que tenés es un martillo, todo lo que tengas que arreglar se parece a un clavo....no sé si soy claro...

Jaja re claro y me gusto lo remarcado, me causo una sonrisa en el rostro.
 
Mi experiencia me dice lo siguiente... existe una relacion entre software y hardware al implementar un circuito digital. La ecuacion seria algo así:

software = 1/hardware

Es decir inversamente proporcional.
En otras palabras, mas software, menos hardware, y el caso contrario, mas hardware, menos software.
No es que exista una solucion mas ideal que otra, si no que depende de las necesidades.
Mucho software, te ahorra mucha circuiteria, por consiguiente es barato, y facil de corregir errores o implementar mejoras futuras, pero tiene el problema que el software es propenso a fallar por problemas de micros atascados, o juntar basura en memoria despues de un tiempo prolongado si no se aplican medidas necesarias. Tambien requieren un tiempo de inicializacion y el tiempo de proceso suele ser mayor que el mismo objetivo hecho con simple hardware.
En cambio el hardware, es rapido, confiable, no requiere muchas veces inicializacion, no sufre problemas de un micro atascado, pero puede que consuma mas energía y es mas grande si no se diseña un chip embebido con esas funciones, y es mas complicado de diseñar.

Ejemplos, un reproductor ipod y un winamp.
El winamp requiere mucho software, para empezar todo un sistema operativo y controladores de disco duro, interfaces con el sistema, contolador de la tarjeta de sonido, sin contar que hay que iniciar el sistema.
En cambio un ipod, se enciende y practicamente de manera instantanea esta operando.

Me explico? o me aviento una aburridora, jajaja

Entonces lo que yo veo cuando se dominan ambas tecnicas, es que uno puede equilibrar el uso de ambas disciplinas para llegar a una buena relacion de costo/beneficio del sistema final.
 
Temo decirte que difiero en eso...

Por que? Sos libre de diferir todo lo que quieras....

Pero a 20MHz de velocidad de reloj, 600ns de diferencia a favor del assembler (en el mejor caso) no paga que te demores media hora en diseñar un segmento de código que en C demora 30 segundos, que es altamente mantenible por cualquier programador y que puede ser fácilmente reutilizable. Las optimizaciones de los compilador son consistentes y repetibles, lo que te descarga de pensar y escribir código en forma "optimizada" - que es la forma mas directa de cometer errores difíciles de detectar.

Ni hablar cuando tienes que usar un kernel multitarea (hablo de un PIC, eh?), separando las tareas en funciones y especificándole al dispatcher las restricciones de ejecución. Hacer eso en assembler es impensable e imposible, a menos que tengas un par de años para dedicarle al código y pelearte con las interrupciones, push/pop y toda esa verdura "primitiva".

Y si aún necesitas velocidad o tamaño reducido, aunque los microcontroladores traen 8k de ROM o más,...siempre podés meter código assembler embebido en el código C

Te digo que respeto mucho a los que programan en assembler, por que yo lo hice por bastante tiempo, pero en la actualidad - a mi ver - es una verdadera pérdida de tiempo programar en él, justificándolo por algo que en realidad solo el 0.001% de los desarrolladores necesita y que la mayoría de las veces el compilador lo hace mejor, más rapido y sin fallas.
 
Creo esavalla que estamos rayando en el fanatismo hasta cierto punto, asi que respeto muchisimo tu opinión, pero no tiene nada de malo hacer una platica constructiva dando puntos de vista.

Efectivamente en C es rapidisimo hacer un loop que opere flotantes (en ensamblador es una pesadilla).
Y hacer un multihilos, es facil, yo lo hice en un AVR que es similar al pic. Y creeme que el algoritmo es super corto y no toma mas de 10microsegundos la conmutacion de hilos trabajando con el oscilador interno de 8Mhz.
Hacer eso en C si se me complica mas, ya que en C te olvidas de la pila y las direcciones de memoria como bien dijiste.
Ahora, una cosa, y corrigeme por favor si estoy mal porque la verdad no estoy seguro de lo que voy a decir...
El C cuando agregas librerias, anexa todo el codigo de la libreria aunque solo ocupes un metodo?
Si es así, desperdicias memoria de programa.
Lo que si te doy toda la razón, es que los codigos assembler que arroja un compilador son produccto de una laaarga trayectoria de depuracion y optimización.

Creo que si lo que quieres es hacer un vil contador y un comparador, por mencionar un ejemplo, el assembler te va a hacer batallar un buen rato, pero en cambio, si lo que quieres es tener pleno control de los tiempos y ciclos que operan dentro del micro, solo con assembler se va a lograr.

Mas bien creo ezavalla, que depende mucho de lo que quieras lograr y hasta donde quieras dominar el nucleo del procesador. A mi me gusta muchisimo el assembler para controlar detalles tan finos como el numero de ciclos que uso en una función y el momento y lugar exactos de lo que se ejecuta.
Y no te niego, varias veces me he tentado a mandar al churro a assembler y terminar haciendo todo con C, pero como ya me acostumbre a usar multihilo con assembler, y veo que con C se me complica lo que te mencione anteriormente, acabo siguiendo usando assembler para micros.

Para PC, no te discuto, el C es la neta del planeta. No voy a programar un boton con assembler, ni que estuviera loco y no durmiera.
 
Creo esavalla que estamos rayando en el fanatismo hasta cierto punto, asi que respeto muchisimo tu opinión, pero no tiene nada de malo hacer una platica constructiva dando puntos de vista.

Naaa....no es fanatismo, es productividad.

Ahora, una cosa, y corrigeme por favor si estoy mal porque la verdad no estoy seguro de lo que voy a decir...
El C cuando agregas librerias, anexa todo el codigo de la libreria aunque solo ocupes un metodo? Si es así, desperdicias memoria de programa.

En un microcontrolador, solo agrega el código de las funciones invocadas y las invocadas por ellas (todo el stack-trace...como quien dice). Y no solo eso, muchas "funciones" no son funciones sino macros escritos en assembler, así que tiene expansión de código in-line, aunque esto solo vale para segmentos de código cortos. En el C de un microntrolador no hay un linker como tal, sino un pegote de código. Las secciones de código muertas (sin ejecución) son quitadas por el optimizador, así que las funciones añadidas y que no son invocadas....puffffff. Te imaginarás que quienes desarrollan los compiladores para microcontroladores tienen muy en mente las limitaciones de espacio de memoria con las que cuentan....

El error es pensar que el C de los microcontroladores sufre el mismo proceso de compilación y linkedición que el C de las PC, y en verdad no son ni parecidos en muchos aspectos...pero como son aspectos internos...no se ven ;)
 
Buenas gente, primero lo primero:
Ezeballa... yo tambien quiero ser un jedy!!!!

Bueno, tengo mucha experiencia en "conocer" la electrónica, aunque no tengo experiencia fuertes en la electrónica.
Toda mi vida (hasta hoy) siempre me basé en proyectos pequeños, tanto analógica, como digital, luego me metí en el foro y continué ampliando (no profundizando) el conocimiento sobre la electrónica.

Uno de mis objetivos es ese, saber todo sobre todo tipo de electrónica, tanto analógica cómo digital... y me encontré un un terrible resultado...

No es posible saber todo...

ahora, ¿la electrónica industrial entra en estos campos? por lo que veo no conocen el ladder, la lógica de contactos, o electrónica de potencia... y por más que las conozcan y las dominen, no será su fuerte, porque con un pic y 3 capacitores, te controlo una línea de producción... si, eso es posible... pero no es correcto por temas formales y legales.
Si lo ponemos de esa forma, yo con el PLC te hago lo que quieras, si querés hago que el PLC se fume un Cigarrillo, tiene etradas y salidas analógicas y digitales, con los módulos te conectas a cualquier cosa con cualquier método y listo, o sea, con el PLC soy dios... ahora, vos con el PIC estás diciendo lo mismo... y si fuera dios con lo analógico, me hago unos flip flop con transistores, o algúna lógica que responda únicamente a lo que quiero mas etapa de potencia y algún que otro operacional...

En fin... lo que quiero decir en realidad es que ningúno es elemental pero ambos necesarios.
No se mucho de pics o integrados, pero se, como dicen por ahí, que para audio, obligatoriamente terminas con un inductor o capacitor, no podes poner un integrado directo al parlante o plugin...
Pero con la analógica sola no podes crear funciones y tomar deciciones automáticas....

Es cómo decir que el informático necesita saber electrónica, y el electrónico necesita saber informática... Hoy en día, muchos informáticos se hacen los grandes porque dicen que sin ellos, los integrados no sirven... pero todo electrónico le respondería, que sin nosotros, no habría integrados inservibles que programar...

otro punto importante es la edad de uno, alguien que nació cerca de los 50, creció prograsivamente con la electrónica y tubo el tiempo necesario de experimentar, por lo que tranquilamente se pudo dedicar a la "nueva" tecnología del 8080... tal como el caso de Ezevalla... en cambio, yo nací a fines de los 80, y me tengo que comer todos los libros de lleno, y no solo eso, tengo muchas ramas de la electrónica que ver que aún no conozco, (el mes pasado me enteré de los VHDL)

Yo aprendí dos cosas fundamentales con la electrónica ... leer manuales y usar internet...
 
ahora, ¿la electrónica industrial entra en estos campos? por lo que veo no conocen el ladder, la lógica de contactos, o electrónica de potencia... y por más que las conozcan y las dominen, no será su fuerte, porque con un pic y 3 capacitores, te controlo una línea de producción... si, eso es posible... pero no es correcto por temas formales y legales.
Si lo ponemos de esa forma, yo con el PLC te hago lo que quieras, si querés hago que el PLC se fume un Cigarrillo, tiene etradas y salidas analógicas y digitales, con los módulos te conectas a cualquier cosa con cualquier método y listo, o sea, con el PLC soy dios... ahora, vos con el PIC estás diciendo lo mismo... y si fuera dios con lo analógico, me hago unos flip flop con transistores, o algúna lógica que responda únicamente a lo que quiero mas etapa de potencia y algún que otro operacional...

Epppaaa!!! Yo hablo de los PICs por que salió el tema de los microcontroladores, pero también he programado PLCs!!! Lo que pasa es que esos "lenguajes" para los PLC no son tal cosa, sino que son una forma de programación asistida orientada a facilitar su uso por personal que no sepa programar, pero conozca como enlazar contactores, relays y ese tipo de conexiones. Tres "switches" en serie es una AND de tres operandos (p1 AND p2 AND p3) en cualquier lenguaje de programación, pero en lógica de contactos, es solo eso...tres interruptores en cascada. Con que el personal técnico conozca lo que hace un interruptor es suficiente para que haga el contactito, pero de ahí a que aprenda algebra de Boole....hummmmmmm.

Lo que sucede es que estamos en etapas diferentes del uso de elementos de cómputos. Yo estoy hablando a nivel "diseñador", pero la charla a nivel "usuario" es completamente diferente....y no por eso una es mejor o peor que la otra...solo son etapas diferentes con necesidades diferentes y que deben ser cubiertas en forma diferente.

otro punto importante es la edad de uno, alguien que nació cerca de los 50, creció prograsivamente con la electrónica y tubo el tiempo necesario de experimentar, por lo que tranquilamente se pudo dedicar a la "nueva" tecnología del 8080... tal como el caso de Ezevalla... en cambio, yo nací a fines de los 80, y me tengo que comer todos los libros de lleno, y no solo eso, tengo muchas ramas de la electrónica que ver que aún no conozco, (el mes pasado me enteré de los VHDL)

Eppaaaa!!! Yo no nací en los 50's...yo nací en 1963!!!! Soy viejo, pero no para tanto!!!!
 
La logica de programacion de un PLC se me hace muy similar al VHDL, ya que son dispositivos que usan logica combinacional, y no son programas propiamente dicho lo que se hace en ambos, si no una descripcion de un circuito.

Si sabes describir, una FPGA o un PLC no son mas que pan con lo mismo. Hablando en conceptos de logica obviamente.
 
Ejemplos, un reproductor ipod y un winamp.
El winamp requiere mucho software, para empezar todo un sistema operativo y controladores de disco duro, interfaces con el sistema, contolador de la tarjeta de sonido, sin contar que hay que iniciar el sistema.
En cambio un ipod, se enciende y practicamente de manera instantanea esta operando.

Los ipod tienen microcontroladores con núcleo ARM11 creo, y sistemas embebidos.

Y en cuanto a la discusión sobre Assembler y C, lo vemos de dos puntos de vista:

En assembler hacemos paso a paso, y ocupamos menos memoria (dependiendo de quién programe), pero cuando el programa es muy extenso resulta un lío laburar con el código.

En C, en más fácil comprender el programa y realizar un seguimiento. En cuanto al espacio que ocupa, depende también del compilador que estemos usando (podemos elegir, según la aplicación lo requiera, como optimizar el código a compilar.. en cuanto a velocidad o espacio).

La logica de programacion de un PLC se me hace muy similar al VHDL, ya que son dispositivos que usan logica combinacional, y no son programas propiamente dicho lo que se hace en ambos, si no una descripcion de un circuito.

Si sabes describir, una FPGA o un PLC no son mas que pan con lo mismo. Hablando en conceptos de logica obviamente.

MM no conozco mucho, sólo por arriba. VHDL es un lenguaje, que mediante una Suite (ejemplo Xilinx), también tenemos la opción de programar de forma gráfica y generar el código.

Y con los PLC que están viniendo, Módulos Táctiles, Protocolos de Comunicación, etc.. chau PLC básico.

PD: Menos mal que hay varias ramas en la electrónica, sino estamos al horno..

Saludos!
 
Última edición:
Ezevalla dijo:
Nepper dijo:
otro punto importante es la edad de uno, alguien que nació cerca de los 50, creció prograsivamente con la electrónica y tubo el tiempo necesario de experimentar, por lo que tranquilamente se pudo dedicar a la "nueva" tecnología del 8080... tal como el caso de Ezevalla... en cambio, yo nací a fines de los 80, y me tengo que comer todos los libros de lleno, y no solo eso, tengo muchas ramas de la electrónica que ver que aún no conozco, (el mes pasado me enteré de los VHDL)
Eppaaaa!!! Yo no nací en los 50's...yo nací en 1963!!!! Soy viejo, pero no para tanto!!!!

Mis disculpas, en realidad quise expresar el concepto, no pretendía en ningún momento establecerte una edad...

Volviendo al tema, como dije antes, si querés hago cualquier cosa con un PIC, solamente tengo que aprender a usarlo...

Si querés hago cualquier cosa con diseño analógico, solamente tengo que aprender los componentes

Si querés te puedo conducir un avion y un helicoptero, solamente tengo que aprenderlo...

todos podemos hacer cualquier cosa...

Se me ocurre lo siguiente... si se rompe un televisor a color de los 80, ¿que tan dificil es repararlo?, ahora, se te rompe un iphone 3g que podes ver televisión... ¿que tan dificil y costoso es arreglarlo?

el mantenimiento es parte del diseño
 
Muy buenos los planteamientos de todos, yo construyo mis propios equipos y los pongo a la venta para medicos, y dejenme decirles que llegar a ello no fue una tarea facil cuando yo estudie solo se analizaba la electronica digital de compuertas y la electronica analogica, cuando inicie me di cuenta que el consumidor queria productos con interfaz digital para facilitar su manejo ante esto tuve que aprender a controlar generadores de RF bipolar tanto e frecuencia como en amplitud con un pic, tuve que aprender a programarlos para controlar estas funciones, la realidad de los e2uipos electronicos es que se requieren de tres cosas electronica, programacion y un excelente diseño como sealan es extremadamente dificil abarcar las tres areas y si agregan a esto la productividad pues es para volverse locos, lo que si las personas dedicadas a la electronica y sobre todo al diseño deben ser multidiciplinarias para salir adelante
 
lo que si las personas dedicadas a la electronica y sobre todo al diseño deben ser multidiciplinarias para salir adelante

Eso eso eso!!!, no quise mencionarlo en un principio, ya que en la universidad consideran a los electronicos como arrogantes, ya que dominan varias disciplinas, pero es verdad, y aun asi, en mi opinion, aun un buen electronico siempre se queda corto, ya que la electronica abarca la mayoria de las disciplinas.
 
Eso lo señalo porque si solo dominas un area te pasaras el resto de tu vida a la sombra de una empresa por no saber hacer otra cosa, la mayoria de ingenieros, tecnicos y hobistas a la electronica son personas con una iniciativa increible, siempre con dudas y con la mentalidad de que si se puede salir con determinado problema y la mayoria perfeccionistas , si no nos parece algo a buscar soluciones.
 
Mis disculpas, en realidad quise expresar el concepto, no pretendía en ningún momento establecerte una edad...

Naaa.....todo bien!!!!!

todos podemos hacer cualquier cosa...
Se me ocurre lo siguiente... si se rompe un televisor a color de los 80, ¿que tan dificil es repararlo?, ahora, se te rompe un iphone 3g que podes ver televisión... ¿que tan dificil y costoso es arreglarlo?
el mantenimiento es parte del diseño

Seguro que todos pueden hacer de todo, solo hay que tener la voluntad de intentarlo.
Y es muy cierto lo que decís de que el mantenimiento es parte del diseño, y es una lástima que no se lo entienda así en la Universidades...
 
De acuerdo con lo que señalan, los chinos no tienen planes de mantenimiento y gracias a ello he tomado ventaja, yo ofresco el servico junto con el equipo eso siempree es importante y la gente se siente segura con lo que adquiere
 
Nepper, no puedo dejar de ver que en tu firma tenés una cita de Whittgenstein y están discutiendo sobre lenguaje...
Justito :D

Saludos
 
Atrás
Arriba