Buscador
YoReparo.com La Web 

Regístrate gratis para participar de los foros, o si ya estás registrado haz login.

Que lenguaje es mejor para un pic

comentario del autor Mie Jul 11, 2007 9:19 pm
   
mi pregunta es para saber si es mejor hacer el programa en c (lo cual no se hacer pero me dijeron que se puede) o si es mejor hacerlos en ASM. el tema es que me dijeron que en C es mas facil y rapido... y si bien yo no hago muchas cosas pero cada vez que empiezo un proyecto me lleva mucho tiempo...por otro lado el tema del ASM lo fui aprendiendo solo...podre hacer lo mismo con el C hay suficiente informacion en linea como para que estudie por mi cuenta...


Gracias a todos y espero no haberlo molestado

danmurk

Reputación

asistió a la solución Jue Jul 12, 2007 5:37 pm
   
Es dificil y depende de cuanto tiempo quieras invertir:

Lenguajes de bajo nivel:Assembler

Dificiles de aprender
Dificiles de depurar
Rapidos en cuanto a ejecucion
Compilador gratuito
Es el que tiene mas posibilidades en cuanto a hardware
Mucha informacion en linea y ejemplos

Lenguajes de mediano nivel:C

Mas facil de aprender que assembler
Mas lento (no tanto)
Compilador pagado (hay que comprarlo)
Hay mucha informacion en linea,pero menos que assembler


Lenguajes de Alto nivel:BASIC,PASCAL

Los mas faciles de aprender
Rapides para escribir programas
Son los de ejecucion mas lenta (depende de la aplicacion que se quiera escribir)
Hay que pagar por el compilador
Se pueden conseguir los manuales en linea, en ingles y en castellano
Las posibilidades en cuanto a hardware tiene que ver con las librerias disponibles

En fin: la eleccion es tuya.

MoonBlack

moonblack

Reputación

asistió a la solución Jue Jul 12, 2007 11:19 pm
   
depende de cuanto control quieres tener sobre los recursos y los tiempos, en ensamblador tienes total control sobre los recursos en todo momento y del curso del programa, pero se dificulta hacer programas grandes.
En lenguajes como c o basic haces mas con una simple instruccion pero no sabes cuantos ciclos de reloj te llevas en ello ni tienes total control sobre de los recursos, pero te sirve para hacer programas grandes o de mas abstraccion.
Saludos

torresdelamora

Reputación

asistió a la solución Sab Jul 14, 2007 12:34 am
   
Hola, sin duda depende de lo que quieras hacer. El lenguaje C, lleva mas memoria de programa. Es una cuestion de costo, si vas a realizar un diseño que tenga produccion tenes que buscar un chip economico con el menor recurso posible y eso se puede lograr con asm.
Si vas a trabajar con operaciones matematicas, seguro tendras que usar el lenguaje c te vas a ahorrar muchos dolores de cabeza y ganas mucho tiempo.
Pero bueno, tampoco te regalan el compilador de C y son costosos. Suerte.

pabloelectronico

Reputación

asistió a la solución Jue Jul 19, 2007 6:18 pm
   
buenas amigo...
no se si estuvistes paseando por el foro de diseño electronico, pues ahi tengo un curso de como programar microcontroladores PICAXE (que es un PIC con un pequeño fimware en su memoria que te permite programarlo con un sistema basic)...
el cursito que aloje alli, es de como diseñar y programar un PLC con instrumentos (sensores y actuadores) con el sistema PICAXE, fijate, te puede llegar a servir bastante ya que aprendes su programacion rapido...
el curso esta en dos archivos pdf y los aloje en dos mensajes de la pagina del foro "diseño electonico"
saludos

torres.electronico
Moderador
Reputación

asistió a la solución Sab Jul 21, 2007 6:13 pm
   
Hola, nose si aun estoy a tiempo... te comento mi experiencia...
aprendi a programar los PIC en asembler, luego de bastante tiempo me interezo mucho el tema de programar en C, portanto fui estudiando y llegue a los resultados que ya te han comentado los colegas arriba... en asembler tienes un increible manejo de los recursos del PIC en todo momento y puedes cambiar de instrucciones cuando se te de la gana!. en C trabajas en base a librerias lo que te quita un poco el control del programa por momentos, ahora todo se basa obviamente en tu capacidad como programador y en la jerarkia que le asigens al programa...

despues de mucho tiempo aprendiendo (que vaya ke me costo), llegue a la mejor solucion, utilizando un linkeador puedes introducir codigos en distintos idiomas en tu programa... te doy un ejemplo:
si necsito saber si un registro tiene el valor XX
en assembler tendria ke recurrir a varias opciones, utilizando tablas, con sublw o subwf, con xorlw o xorwf, luego revisando el bit Z del STATUS para generar un salto condicional... en fin, son varios pasos..

en C basta con algo como:

if regXX == .15
instrucciones
else
instrucciones
endif

........

tonces en mi caso lo ke hago es realizar este tipo de pasos en C y compilarlos a un .obj i asi con todas las intrucciones de alto nivel...como operaciones matematicas, comparaciones, etc... y todo lo relacionado a manejo directo de bits, lo hago en assembler...
luego linkeo todo, y listo...el linkeador de encarga de unir ambos codigos i llevarlos a un .hex final...
nose si me di a entender.... debo admitir ke me costo bastante entender del tema, pero lo logre y FUNCIONA!!! Wink...

REVISA LA AYUDA DEL MPLINK...
www.microchip.com

saludos!

nocx

Reputación

comentario del autor Lun Jul 23, 2007 7:36 am
   
Gracias torres.electronico y nocx, les agradescolos consejos,y meparece muy interesante eso de linkear entre c y asm voy a probarlo creo que eso es lo mejor para usar a full lo mejos de los dos lenguajes....si no lo llego a entender o no me sale te aviso....gracias a todos de nuevo

danmurk

Reputación

comentario Mie Sep 26, 2007 10:31 am
   
el lenjuage es una herramienta, va ser bueno si sabes sacarle provecho, la practica hace al maestro sino practicas, entonces ningun lenguaje te servira.

rito2007

Reputación

comentario Mie Sep 26, 2007 2:50 pm
   
el lenjuage es una herramienta, va ser bueno si sabes sacarle provecho, la practica hace al maestro sino practicas, entonces ningun lenguaje te servira.

rito2007

Reputación

asistió a la solución Vie Sep 28, 2007 6:15 pm
   
En C se puede utilizar la instruccion ASM para utilizar assembler, y asi te ahorras eso de andar linkeando manualmente

te explico como

-------------------------------------------------------------
if(var=25){
asm{
/* INSTRUCCIONES ASSEMBLER */
}
}
else{
var++;
}

--------------------------------------------------------------
espero que te sirva de ayuda lo que digo, por sino entendiste, es una instruccion interna del C como el if, se escribe asm, abris llave {, instrucciones y cerras llave }, muy simple

Saludos

diego_1989

Reputación

comentario del autor Mar Oct 02, 2007 10:39 am
   
Eso que decis esta muy bueno, voy a ver si lo pruebo y luego cuento como me fue

danmurk

Reputación



Hacer una pregunta

Reglamento / P+F

Foros

Miembros / Expertos