Escrito originalmente por antoniof
Amigo maunix, creo que la gente que desarrolla los compiladores de C para pic sí trabaja a ese nivel con ASM. Gracias a ellos, podemos disfrutar de las comodidades del C y de todos los lenguajes de alto nivel.
Por supuesto que esto es así, el punto al que yo iba era otro.
Vamos a ver si se me entiende:
En sistemas embedded donde uno se acerca mucho al hardware el C no es la panacea!
Traten de cambiarse de un pic 18F4580 a un 18F458 , con ese simple cambio y tendrán que lidiar con muchas configuraciones de clock "a medida" . Me explico?
Estas cuestiones en las PC las resuelve el sistema operativo, y es ahí donde las ventajas de la portabilidad del código son mas evidentes! Son los "drivers" los que lidian con las diferencias de hardware dandole al programador siempre la misma interfaz de programacion.
Por otra parte, si uno programa en assembly con subrutinas con código reubicable, con macros que realicen ciertas funciones importantes luego el código puede ser realmente muy portable y muy similar a lo que es un C.
De hecho compiladores de C como el CCS realmente parecen un lenguaje de macros y no un compilador Ansi C!
Repito:
. Uso el C cuando puedo sobre todo en los PIC18.
. Uso el assembly en los PIC16 principalmente porque tengo infinidad de módulos y subrutinasy macros ya armados y funcionando a la perfeccion hechos en assembly, yo le paso un par de parámetros y la rutina me resuelve todo.
. Aconsejo simpre a utilizar el C pero tambien a "conocer algo del assembly" o al menos de los módulos ya que si algo no funciona es ahí donde debemos recurrir.
Espero haberme puesto más en clar.