TODOPIC

Lenguajes de programación para PC => C, C#, C++ => Mensaje iniciado por: cicloide2 en 10 de Septiembre de 2012, 20:53:16

Título: Para entender C es conveniente aprender assembler
Publicado por: cicloide2 en 10 de Septiembre de 2012, 20:53:16
Hola estoy tratando de aprender a programar micros por primera vez y me decidi por Freescle, los quiero programar en C (aclaro que no se de programacion y mucho menos de C y assembler mas que lo que puedo encontrar en la wev y uno que otro libro de C ) pero confieso que se me hace complicado el intentar aprender C y a la vez intentar implementarlo en el micro.
Mi pregunta es me conviene comezar entendiendo Assembler para despues pasar a C y por ultimo volcarlo a los micros o debo directamente comensar con C directamente? :?

Gracias.
Título: Re: Para entender C es conveniente aprender assembler
Publicado por: jukinch en 10 de Septiembre de 2012, 21:18:11
No creo que sea necesario para comenzar a aprender C saber primero assembler.
Lo que si es bueno es darle una lectura al datasheet del micro que estés estudiando.  ;-)
Por ejemplo ver como están compuestos los puertos (si están configurados por defecto en modo analógicos o digitales). Aprender como configurar el oscilador, etc.
Lo mejor es que veas ejemplos funcionales en C. en donde enciendas y apagues un led. Y luego de a poquito ir agregando cosas. El auto fantástico. Luego pulsar botones y prender y apagar cosas. Etc. Etc. Primero gatear, luego caminar, y por último correr!
Saludos.
      Jukinch
Título: Re: Para entender C es conveniente aprender assembler
Publicado por: marqueses en 11 de Septiembre de 2012, 09:48:41
Hola,

Como te comentaba jukinch, yo tampoco creo que sea necesario conocer assembler, pero si lo sabes perfecto. La mayor ventaja que le veo a conocer asm es que te hace entender todos los registros del micro, pues debes de configurarlos manualmente, y conoces el uso que tiene cada bit de cada byte de cada registro, que en C lo harias programandolo con una funcion y olvidandote de donde está cada registro.

Dale fuerte al C y cuando tengas dudas de como funciona algo, al datasheet  ;-)
Título: Re: Para entender C es conveniente aprender assembler
Publicado por: MerLiNz en 11 de Septiembre de 2012, 10:37:42
No es necesario, yo llevaba bastantes años sabiendo C y casi nada de ASM.. Al principio me costo adaptarme a los pics pero luego tienes la base de saber todo el C e implementarlo a los pics, lo unico que debes aprender es el uso de los registros, lo demas es todo parecido ya que el C es un lenguaje portable a diferencia de ASM.
Título: Re: Para entender C es conveniente aprender assembler
Publicado por: marqueses en 11 de Septiembre de 2012, 11:14:51
Si, por eso decía, que no es necesario saber asm y que es mejor dedicarse directamente al C, pero que si has tenido asignaturas en la carrera o lo has estudiado por tu cuenta, te facilita el conocimiento de los registros del micro, y saber donde buscar cuando algo te falla.

Lo ideal seria que existiera un HAL y SAL (capas de abstracción de hardware y software) y que pudieras programar igual tanto para un micro de Microchip que para uno de TI o ST. Pero como no, deberemos seguir estudiando los datasheet para saber si el SPI está bien configurado cuando no conseguimos hacerlo comunicar, etc.
Título: Re: Para entender C es conveniente aprender assembler
Publicado por: Suky en 11 de Septiembre de 2012, 12:17:00
NO es necesario aprender assembler para enteder C, para nada, pero si conocer el microcontrolador que vas a usar para entender como trabaja. Además porque muchos de los C necesita saber el tema de los registros porque se los configura manualmente, sino usa CCS  :mrgreen:


Saludos!
Título: Re: Para entender C es conveniente aprender assembler
Publicado por: KALLITOS en 11 de Septiembre de 2012, 13:15:42
Yo empecé con basic y ahora ando en C, la datasheet es lo esencial y claro el foro todopic!!!
Título: Re: Para entender C es conveniente aprender assembler
Publicado por: cicloide2 en 11 de Septiembre de 2012, 20:34:47
A..... (me sale una mericoneada , AMO ESTE FORO  :D) gracias a todos por responder todos fueron muy concisos y precisos al responder, ni una palabra mas ni una menos.
En fin, vallamos al centro del problema, encender Leds ya hice , configura los puertos como entradas y salidas  tambien, pulsadores tambien (pero nada con precicion y de esto los que mas les pueden decir de mi nivel es SUKY y Richi777 que los eh tenido a mal traer), creo que mi problema fundamnetal es aprender a configurar los registros, interpretar el compilador y entender C ademas de implementarlo porsupuesto, y es por eso que decidi preguntar por Assembler pues tal vez me estaba saltendo un paso en la secuencia de aprendisaje.
Les comento que decidi empesar con Freescale y talvez (como Don Suky me recomendo ) deberia haber empezado por PIC pues los colaboradores que me acistan serian mayores (en numero) sin olvidarme de la cantidad de ejemplos e informacion que se encuentra por todos lados, y en español.
El tema es que para empezar con estos micros me compre un BDM (no profecional, de fabricacion nacional y en realidad quiero aprvecharlo quiero aprender Freescale no quiero bajar los brazos), en el subforo de Freescale poste todas mis dudas la respecto.
El tema funciones por ejemplo es algo que me resulta dificil de entender, ejemplos de funciones encontre en libros y foros dedicados a orientar sobre el lenguage C pero, imlementarlos en el micro siento que es una tarea diferente, que es como una materia a parte pues no se, no entiendo como hacerlo en el micro. Inclusive encontre algo de informacion que fui subiendo pero no doy pie con bola como quien dice.
Lo que si me parecio interesante y no creo que sea algo que este de mas es lo que muchos de ustedes me comentan con respecto al Assembler que este me obligaria a programar bit por bit de cada registro que dese configurar (esto me ayudaria con el tema de los datasheet ya que seria programrlos tal cual aprecen el propiamente dicho).
No soy estudiante presencial apenas auto didacta con los micros y sistemas, mi profecion Electronico mi desempeño Metalurgico, y el poco contacto que tengo con personas dedicadas al tema  en cuestion lo hago por este medio.
Aca en argentina existe una empresa que desarrolla material didactico para el desarrollo de la firma Freescale , se llama Edudevices y son a los que les compre el BDM, ellos tienen un kit de evaluacion y estaba pensando en comprarlo, segun me informe viene con material basico comenzando con assembler hasta pasar al C con practicas incluidas y multiples perifericos para practicar, pero tambien existe un unico curso presencial en Bs As que dicta el Instituto de Profeorado Tecnico perteneciente a la facultad UTN que trabajan con el micro HC908JL8 en C (por cierto este micro es viejito y pronto va a desapareser es lo que me informo la firma Freescale, mas bien lo que va a desaparescer es la familia HC908 que contempla el micro del curso),   primero es  mas barato que el kit y es para cualquiera que quiera tomarlo que tenga nociones de Tecnicas digitales (eso no seria un problema ) y segundo en comparacion con el kit tendria un profesor a quien hacerle las preguntas que desee, estaria en contacto con personas en mis mismas condiciones o con mi mismas dudas o diferentes que tambien me ayudarian a aprender, entonces les pregunto que es lo que ustedes harian en mi posicion?
Curso presencial con profesor al frente o Kit de evaluacion?


Gracias saluds cordiales para todos :mrgreen: