TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: itubal en 29 de Septiembre de 2006, 03:32:50

Título: ¿ Caracteristicas de los lenguajes de programacion ?
Publicado por: itubal en 29 de Septiembre de 2006, 03:32:50
Holas a todos y muchas gracias por acogerme en este foro. Intentaré poneros el máximo número de líneas posibles de los codigos que vaya generando.

Por ahora solo hago cosas sencillas en ensamblador directamente, pero veo mucho más rápido utilizar un lenguaje de programación. Me he bajado de internet (no sé como llegué a este programa) el SourceBoost que es un entorno bastante guapetón y gratis. Con el se pueden hacer programas en C y ya he compilado algún que otro programa sencillo.

Una pregunta que no he podido encontrar respuesta, es ¿cuales son las posibilidades que me ofrece el lenguaje en cuanto a operaciones matemáticas se refiere? ¿Puedo hacer multiplicaciones y divisiones sin  problema? ¿existe una libreria para esto? ¿puedo manejar matrices? ¿existen funciones para manejar tablas y datos?

Quiero hacer un programa muy sencillo que mida el tiempo de un impulso y a continuación emita otro impulso con un tiempo calculado y distinto al primero, puedo calcular ese impulso en tiempo real o bien, si es más rápido y sencillo, tenerlo en una tabla ya calculado.

Bueno, muchisimas grácias por vuestro tiempo.

Título: Re: ¿ Caracteristicas de los lenguajes de programacion ?
Publicado por: maggi en 29 de Septiembre de 2006, 05:44:53
Hay buenas y malas noticias, en general el C tiende a ser un lenguaje muy estandarizado, por eso es que linux por ejemplo anda en tantos tipos de procesadores, el nucleo esta escrito en C y con un compilador que siga los estandares ya esta.
Pero en el mundo de los MCU la cosa cambia de fabricante en fabricante, hasta las cosas mas obias pueden ser distintas, algunos compiladores por ejemplo ya traen librerias como el protocolo i2c o el rs232, y soporte para varios tipos de dispositivos RTC, memorias sensores, otros son mucho mas basicos.
Se puede trabajar con numeros decimales en nucleos de 14 bits, se pueden crear arrays y matrices, se pude hacer casi lo mismo que con el C mas simple, claro con las obias limitaciones del propio hardware.
Ahora si tenes que ser muy preciso en tus mediciones vas a querer saber cuanto tarda en ejecutar tal o cual instuccion y tenes que monitorear eventos muy rapido vas a tener que dominar algo del assembler que por cierto podes incluir dentro del codigo C sin ningun problema (inline assembler).
Título: Re: ¿ Caracteristicas de los lenguajes de programacion ?
Publicado por: jfh900 en 29 de Septiembre de 2006, 07:41:29
Mira este hilo:

http://www.todopic.com.ar/foros/index.php?topic=12688.0

Un saludo.
Título: Re: ¿ Caracteristicas de los lenguajes de programacion ?
Publicado por: itubal en 29 de Septiembre de 2006, 14:52:06
¿y las operaciones matemáticas?

Gracias a todos por las respuestas, el hilo que me indica jfh900 está bastante bien, aunque ya era consciente de lo que se dice en el. Claro que lo mejor es programar en ensamblador y que además el tio sepa programar mucho y bien.

En fin daré una vuelta porque tengo la parte del programa de tomar los tiempos de las señales bien hecho en ASM, ahora me faltan las tablas de coversión (n.p.i. de como hacerlo) y generar las señales con los nuevos tiempos.

Enga gracias.
Título: Re: ¿ Caracteristicas de los lenguajes de programacion ?
Publicado por: maunix en 01 de Octubre de 2006, 11:22:10
¿y las operaciones matemáticas?

Gracias a todos por las respuestas, el hilo que me indica jfh900 está bastante bien, aunque ya era consciente de lo que se dice en el. Claro que lo mejor es programar en ensamblador y que además el tio sepa programar mucho y bien.

En fin daré una vuelta porque tengo la parte del programa de tomar los tiempos de las señales bien hecho en ASM, ahora me faltan las tablas de coversión (n.p.i. de como hacerlo) y generar las señales con los nuevos tiempos.

Enga gracias.

Las operaciones matemáticas como multiplicación, división, suma o resta de números de coma flotante, está garantizada. 

Ahora si ya quieres, no se, una función cosecante o arcotangente o bien una potencia por un número fraccional, entonces de seguro tendrás que implementarla tú mismo.

La ventaja del C es que hay mucho código por todos lados y que , con el conocimiento adecuado, podrías adaptarla a tu PIC.

Aclaro esto porque si la función original no está bien documentada hay que conocer muy bien como adaptarla porque si por ej. la función original prevee que el tipo de datos float es de 64 bits (en vez de 32 como en los pics) entonces podrías llegar a tener algún problema.  Lo mismo sucede con las variables "int" o "long", etc.

Otro detalle es que nunca pierdas de vista el tiempo de ejecución de una operación matemática, puede llevar cientos a miles de ciclos de instrucción.

Saludos