programación PIC32 C [cerrado]

-2

Me estoy metiendo en los microcontroladores PIC y más específicamente en PIC32s. Para todas las personas que programan estos chips, ¿cómo aprendiste? He visto libros para aprender programación en C para PIC, pero ¿es realmente necesario para aprender a programar PIC?

    
pregunta BowesAndArrows

3 respuestas

2

Debo señalar que el OP dijo que PIC32, que, en compañía de ARM Cortex Ms, es un gran mundo de 32 bits alejado del PIC16 de 8 bits. Estoy escribiendo el ensamblaje ahora mismo para un PIC16F1825, pero no soñaría con usar nada más que C para el PIC32 o ARM Cortex M. Las rutinas de optimización pueden estar en ensamblaje, pero el ensamblaje de MIPS y ARM no es un paseo por el parque y eso es no donde empezaría.

Microchip tiene un compilador XC32 gratuito (paralizado para optimización, que en realidad es gcc para el núcleo MIPS que se encuentra en el PIC32).

Definitivamente, seguiría la ruta de uno de los kits de inicio de PIC32MX ( enlace ) con un PICkit3. Instale MPLABX y XC32 y vea cómo le va con sus tutoriales de inicio.

Si hay un tutorial decente centrado en PIC32 en línea o en un libro, ¡lo seguiría!

    
respondido por el carveone
0

El departamento de mi escuela enseña casi exclusivamente en fotografías, y comenzamos desde abajo con el ensamblaje. Es una excelente manera de aprender cómo funciona esta arquitectura en particular. Dicho esto, probablemente sería mucho más alentador si siguieras la ruta 'c' primero.

Sin la estructura del entorno del aula, sugeriría encontrar un proyecto que parezca interesante pero manejable en la red y simplemente trabajar en ello. Será muy desalentador al principio, y probablemente por el resto de su vida. Si quieres tomar el camino fácil, solo consigue un Arduino.

    
respondido por el RYS
0

Como lo señaló la carveona aludida al PIC y el PIC32 son muy diferentes. El PIC32 tiene un núcleo MIPS, los otros PICS tienen un núcleo PIC de microchip, que es una cosa minimalista. Para el PIC32, estoy de acuerdo en que C más algo de asm es el camino a seguir y puede usar gcc o las herramientas de microchip, la mayor parte del aprendizaje es hacer llamadas a API o escribir en registros, poco que ver con el procesador central. Para los que no son PIC32, los PICs personalmente no me acercarían a C, ya que son diseños muy poco amigables, tienen recursos muy limitados (ram / rom), por lo que elegiría ASM, que es bastante fácil de aprender.

Incrustado está integrado. La curva de aprendizaje tiene que ver con el dominio de las cadenas de herramientas y la depuración con poco más que un led parpadeante o, si tiene suerte, un osciloscopio. Se requiere algo de ensamblaje, se requiere la lectura de los esquemas, en ocasiones se producirá daño al hardware, así que compre repuestos. La lectura de manuales a menudo mal escritos (el microchip es particularmente malo) para descubrir cómo usar los periféricos es donde se pasa la mayor parte del tiempo con este tipo de trabajo.

Recomiendo comenzar con simuladores, pueden tener una mejor visibilidad del procesador que un chip real donde no se puede ver nada. El arranque en hardware tiene una tasa de falla significativamente mayor. Las fotos que no son pic32 son tan simples que puedes escribir fácilmente tu propio simulador, si no puedes golpear un simulador pic12 o 14 o 16, entonces no puedes trabajar realmente a este nivel como gestión de bits en registros, etc. es lo que necesitas. para la programación de periféricos, etc.

Cuando esté listo, obtenga una tarjeta, con un led, aprenda a parpadear usando un bucle de tiempo y aprenda a usar el periférico del temporizador para medir el tiempo más preciso. Los largos períodos de tiempo, como segundos o decenas de segundos (a menudo el temporizador no puede hacer eso en una medición, por lo que tiene que medir un período más pequeño muchas veces), compare la velocidad de parpadeo con un cronómetro o algo con una segunda mano, cuando lo crea debe ser de 60 segundos, es 60 o 59 o 61 y si es así, ¿por qué? ¿Es la precisión del reloj o si ha programado N-1 en lugar de N en el temporizador? ¿Es 30 en lugar de 60 porque no se dio cuenta? una división por 2 pasando en alguna parte.

    
respondido por el old_timer

Lea otras preguntas en las etiquetas