c++ y la electronica

Estoy de acuerdo en lo que dices ezavalla. C es lo mas usado.
Pero explicame como harias un multihilos en C y usando solo 512Bytes en ram.
 
Y vos podés poner el clavo con la herramienta que te quede cómoda, pero eso no significa que no haya una herramienta que sea la adecuada y óptima

EZ yo no discuto eso, eso cada quien lo decide... yo no te voy a hacer cambiar nunca tu forma de pensar ni tu a mi ni a nadie, porque todos tenemos un proposito diferente para cada herramienta...
mas claro yo tengo un martillo y una clavadora Dewalt preciosa que mete unos 300 clavos de 2" en menos de 1 un minuto pero hay lugares donde no entra la porqueria porque es muy grande y ni modo a usar el martillo, si me explico...
yo creo lo mismo que tu pero cuanto tiempo te vaz a pasar diciéndoselo a los demas que son muchisisisisisimos??? (pregunta retorica)
 
Última edición:
Yo dije lo siguiente:

en la experiencia personal, te puedo decir que este es el lenguaje mas utilizado en muchas areas

Y lo repito
en la experiencia personal
y
mas utilizado en muchas areas
(no precizamente en todas las areas)

Eso es lo que tengo entendido, sin embargo estoy conciente que podria estar en un error. Seria bueno investigarlo. Y si estoy mal, pues bienvenido el conocimiento fundamentado.

Estoy de acuerdo en lo que dices ezavalla. C es lo mas usado.
Pero explicame como harias un multihilos en C y usando solo 512Bytes en ram.

Aunque la pregunta no era para mi, quiero comentarte que lo hize a mi manera (multitarea) en los pic y con un micro-sistema operativo que escribi en C. Es cooperativo y funciona bien, con las debidas precauciones. Tambien existe un SO llamado Salvo y utiliza poca ram
 
Pero explicame como harias un multihilos en C y usando solo 512Bytes en ram.
En cual micro? Multihilos cooperativo o preemptivo? Con o sin locks y semáforos? Cuantos hilos concurrentes? Hard-Real-Time, Soft-Real-Time o No-Real-Time? etc, etc????

512 bytes de RAM es memoria de un uC, y si la ROM no importa...tanto, no es tan difícil escribir una ISR asociada a un timer que haga los cambios de contexto...al fin de cuentas está toda la info en el stack y algunos registros...pero esto si es preemptivo. Si es cooperativo, solo hay que definir las primitivas que van a liberar el uso de la CPU cuando sean invocadas, lo que seguramente implica hacer un wrapper sobre las operaciones I/O y ajustar un pequeño "kernel" que lleve el tracking de los procesos secuenciados y los ordene de alguna forma..., probablemente en ambos casos usando algún algoritmo tipo round-robin u otro diferente si es real-time.

Que puede pasar en este diseño:

  1. Que no pueda lograr una cantidad muy alta de procesos concurrentes? sin saber cuantos necesito...no hay mucho para decir.
  2. Que voy a desperdiciar memoria? Y...es probable....pero cuanto es el desperdicio? Y cual es el impacto?
  3. En assembler tal vez lograría (dudoso) mas velocidad en los cambios de contexto? No creo, pero si fuera así, podría escribir 10 instrucciones assembler dentro del código C para optimizar esa parte.
Y podría seguir con las preguntas y respuestas, pero creo que esto ya lo tratamos alguna vez antes :confused: :confused: :confused:

De todas formas, esas preguntas constituyen lo que se llama "análisis de requerimientos", y cualquiera que enfrente un desarrollo en un uC debería estar preparado para responderlas, o al menos para buscar la respuesta ;)

yo creo lo mismo que tu pero cuanto tiempo te vaz a pasar diciéndoselo a los demas que son muchisisisisisimos??? (pregunta retorica)
Es que yo no se los digo a los demás, solo se lo contesto a quien inició el tema. Si los demás son mermos y quieren programar TODO en assmbler y pasar un año haciendo algo que en C demora 4 horas, el problema es de ellos y no mío ;) ... solo espero que no sea demasiado tarde cuando se den cuenta... si es que alguna vez lo hacen...

Y siempre caigo en lo mismo: Cuando la única herramienta que uno tiene es un martillo, todo lo que tenga que reparar se parece a un clavo.
 
Última edición:
Y siempre caigo en lo mismo: Cuando la única herramienta que uno tiene es un martillo, todo lo que tenga que reparar se parece a un clavo.
amen ( o no amper)... por esa...

por eso yo siempre digo "aprender los mas que se pueda y que tengan mas soporte..."
 
Bien ezavalla, Creo que llegamos a la conclusion interesante... El hacer algunos pedazos en assembler.

Creo que no se esta tomando algo en cuenta, que es la preferencia personal de cada uno. A mi me gusta el c, pero con los micros no me siento tan comodo. (ojo, dije que no me siento)
 
disculpen soy nuevo en el foro y recién empiezo con mis estudios en electrónica y me han dejado algunas preguntas que deseo me puedan ayudar a responderlas
el uso del c++ en la electrónica ¿?¿?
la informática como herramienta de la electrónica?¿?
el c++ librería para electrónica¿?
me gustaría saber algunas posibles respuestas estaría muy agradecido de antemano les doy las muchas gracias

Hola chavo, de lo que se, no existe ninguna libreria especifica para electronica, pero en conjunto todas las librerias puedes utilizarlas para diferentes aplicaciones.
El C++ es un lenguaje muy noble que te permite realizar un sin fin de aplicaciones en la electronica, sobre todo en interfases.

Existe una aplicacion de c++ llamada micro c esta sirve para programar pic, en un ambiente mas amigable.

La electronica y la informatica estan muy relacionadas, esto lo ves todos los dias pues la interaccion de estas es llamada tecnologia, espero te sirva si tienes alguna duda sigue comentando.
 
por eso yo siempre digo "aprender los mas que se pueda y que tengan mas soporte..."
EXACTAMENTE. Ese es el asunto! Cuantas mas herramientas tengás, mejores soluciones vas a poder dar.

Bien ezavalla, Creo que llegamos a la conclusion interesante... El hacer algunos pedazos en assembler.
Claro! y por que nó? Si no hay otra solución...habrá que hacerlo en assembler, solo que hay que ser inteligente como para escribir solo lo necesario.

Creo que no se esta tomando algo en cuenta, que es la preferencia personal de cada uno.

Es que aquí me parece que no caben las "preferencias personales". Si el diseño es para vos, para aprender, practicar o jugar...hacelo en lo que quieras, no deja de ser una diversión. Ahora, si tenés que sacar un producto al mercado en 90 días...y.... como que se va a ver feo que luego de ese tiempo y con todo el hardware listo le digas a tu jefe:
"Hey boss! Todo está muy bien, pero recién tengo el 30% del software, por que a mi me gusta escribirlo en assembler". Luego de esto...tu próxima escala va a ser Júpiter luego de la patada en el #$** que te van a dar :LOL:
 
Por su puesto ezavalla, otra vez otro punto de acuerdo. Simplemente cuantas lineas se llevan en assembler el mismo ciclo que con :
for (float a=0; a<=5; a+=0.1){b+=2}.

Para empezar estoy usando flotantes con incremento en decimales... Eso en assembler esta de locos!!! y aqui es una simple linea.
 
Por su puesto ezavalla, otra vez otro punto de acuerdo. Simplemente cuantas lineas se llevan en assembler el mismo ciclo que con :
for (float a=0; a<=5; a+=0.1){b+=2}.
Para empezar estoy usando flotantes con incremento en decimales... Eso en assembler esta de locos!!! y aqui es una simple linea.
Ves...esa es la ventaja! De que te sirve convertirte en un experto de implementación de la IEEE-755 (era esa, no?), con todo el bardo del control de los NaN y la normalización de mantisas y exponentes (suponiendo que no tengas una FPU) para luego usarlo en un lazo con sumas y restas. Y ni te digo el tiempo que vas invertir en eso...y el lío para entenderlo luego de seis meses :confused: :confused: :confused:
 
Si, ya he implementado ecuaciones a diferencias con punto flotante en assembler, y pffff...
Recuerda que hice un posteo preguntando como hacerle y nadie le quiso entrar al toro (problema).

Ezavalla, de casualidad sabes si el C de MPLAB usa la maquina DSP al compilar en los DSPIC?
 
Aunque no hay una libreria exacta para electronica en C++; puedes encontrar librerias alternas en otros sitios que se asemejan o hacen algo con respecto a electronica. Desde hacer un programa simple para que saber los colores de las resistencias hasta un software complejo para muchas aplicaciones diferentes. Eso es lo que la informatica hace como herramienta de la electronica al ayudar a esta a entrar en el mundo de la "computadora". Existen tambien muchos otros programas que son basados en C para poder programar un pic ^^ echa un vistazo por el foro para conocerlos mejor y que saques una mejor conclusión. Espero haberte podido ayudar; saludos.
 
justo encontre esto en esa pagina ezavalla...

Why recreate the wheel coding your own arithmetic functions in assembly or C? Standard C math libraries are supplied with the CCS compiler.

* 1, 8, 16 and 32-bit integer types and 32-bit floating point are supported for all devices
* 48 and 64-bit integer types and 64-bit floating point for PIC24 and dsPIC DSC devices

The compiler also has the ability to represent decimal numbers using a new data type, the fixed point decimal.

* Fixed point decimal gives you decimal representation, but at integer speed. This gives you a phenomenal speed boost over using float.

DSP in-line assembly is supported for your most performance critical code.

Aqui es donde debes de recurrir al lado oscuro de la fuerza y meter assembler en C para optimizar codigo.

Que la fuerza este contigo...
 
Como ya te contestaron arriba, la respuesta es demasiado amplia, pero alli te van algunos cosas que he visto en la industra

el uso del c++ en la electrónica ¿?¿?

En si el C++ casi no se ocupa a menos que estes programando procesadores de alto rendimiento, como DSPs o micros de 32 o 64 bits, lo que es cada dia mas comun es el uso del C plano para programar micros de bajo rendimiento, como PICs, AVRs, etc, y es por las razones que ya te dieron antes.... es mas facil implementar una ecuacion en C que su equivalente en ensamblador

la informática como herramienta de la electrónica?¿?

La informatica y la electronica se complementan mutuamente, conforme se hacen avances en la electronica se implementan en la informatica y posteriormente esa nuevo avance sirve como retroalimentacion y plataforma de experimentacion para nuevos avances electronicos de los cuales se vuelve a beneficiar la informatica, es un circulo vicioso positivo que nos ha llevado a donde estamos actualmente

el c++ librería para electrónica¿?

No hay librerias exclusivas para electronica, ocupas la libreria que te interese y la aplicas a tu programa o circuito,
 
Atrás
Arriba