Programación Específica > Microcontroladores
Fallo - Rs232
lalo_soft:
Discrepo con Tirol el asembler te estreza (debes concentrarte mucho con cada linea de codigo para no llevarte por delante un registro o celda de memoria que ya esta ocupado).En cambio C te permite concentrarte unicamente en la aplicacion y que el compilador se las arregle con los bancos de memoria y asignacion de registros.
lalo_soft:
Kain589 ¿que es lo poco poderoso de C ? con fundamento!!
Huguen_aus_Tirol:
Hola! (de nuevo!)
Es cierto, con asembler, normalmente, necesito el mismo, o más, tiempo para depurar el programa de lo que me lleva escribirlo :angry:
Pero con asembler podemos ahorrarnos algo de memoria, depende el caso bastante. Si, si... cada vez salen micros con más capacidad de memoria; están orientados a la programación en C.
Y, sostengo lo que dije en el mensaje anterior, porque me estoy iniciando en C. Cuando le agarre la mano, seguramente pensaré de otra forma :)
Bueno, parece ser que nos estamos desviando y deberíamos pasar a la sección de programación en C :lol: Y ya que estamos en el baile... cómo usar rutinas en asembler en un programa escrito en C?
Desde ya las gracias y un saludo cordial a todos! :)
Kain589:
No he dicho que sea poco poderoso, sino que lo es menos que assembler.
La velocidad para realizar los procesos es mayor en assembler, ya que los compiladores no minimizan al maximo el tamaño de codigo, cosas que si eres tu el que programa y sabes te saldra un codigo mucho mas compacto y por tanto mas veloz en ejecucion, para encender un led da igual pero habra procesos en los que el tiempo es critico.
Assembler te permite entender y comprender mejor a los microcontroladores y tener un dominio mayor sobre ellos, en C se pierde un poco la esencia del micro: el tener que configurar registros, activas bits de un registro...por ejemplo el configurar el adc, en assembler tienes que saber en cada momento que significa cada bits de los registros implicados y como configurarlo, en c tienes que configurar pero de una forma menos completa(ya te lo hace el)
En C lo mismo estas programando un pc, que un micro, que una tostadora(ya se que no se programan) lo que quiero decir es que se pierde de vista el concepto del hardware y en gran parte de su funcionamiento y configuracion. la prueba es que cualquiera puede programar en C pero no en assembler
P.D. Esto se desvia del mensaje pero lo pongo porque la pregunta esta en este hilo
lalo_soft:
--- Citar ---La velocidad para realizar los procesos es mayor en assembler, ya que los compiladores no minimizan al maximo el tamaño de codigo, cosas que si eres tu el que programa y sabes te saldra un codigo mucho mas compacto y por tanto mas veloz en ejecucion, para encender un led da igual pero habra procesos en los que el tiempo es critico.
--- Fin de la cita ---
Los procesadores tipo Risc como los Pics se caracterizan por optimizar codigo por dos
caminos (Tamaño o Tiempo de ejecucion).Caso curioso que para lograr la mayor velocidad hay que evitar compactar codigo, si no crees revisa los ejemplos de Microchip
para tamaño y velocidad,te daras cuenta que para velocidad no escatiman en el gasto de memoria.Asi que no va lo de mas compacto = mas velocidad por el contrario.
--- Citar --- Assembler te permite entender y comprender mejor a los microcontroladores y tener un dominio mayor sobre ellos, en C se pierde un poco la esencia del micro: el tener que configurar registros, activas bits de un registro...por ejemplo el configurar el adc, en assembler tienes que saber en cada momento que significa cada bits de los registros implicados y como configurarlo, en c tienes que configurar pero de una forma menos completa(ya te lo hace el)
--- Fin de la cita ---
El entendimiento de un micro no te lo da su asembler sino el conocimiento de bloques y modulos,caracteristicas electricas de sus puertos,etc.
No se si tiene algun sentido en estos tiempos sumergirse (lo hice en el pasado) en los detalles de que el bit5 del registro N hace tal o cual cosa si existe una funcion en
C que lo configura en forma correcta (si esto no es un dominio mayor, no se que lo es) de acuerdo a los parametros que le entregas para despues trabajar en forma eficiente con ese modulo que C configuro y que te funciona a la primera.
--- Citar ---quiero decir es que se pierde de vista el concepto del hardware y en gran parte de su funcionamiento y configuracion.
--- Fin de la cita ---
No es cierto por que el Hardware que estas programando lo diseñaste y construiste tu mismo por tanto estas siempre ligado a su esencia.
--- Citar --- la prueba es que cualquiera puede programar en C pero no en assembler
--- Fin de la cita ---
Durante años programe para varios micros (Z80,8031,68000,6800,Pics,ARM) en asembler se lo que es lidiar con asemblers de diferente tipo pasando horas revisando rutinas que parecian optimas y que no funcionaban por que colocates datos en un registro o memoria ya ocupada del cual no te diste cuenta.Ahora con el cambio a C (que no es una moda sino una necesidad) no retorno al asembler.
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa