Paso 7: Hola mundo (hardware)
Hola mundo en hardware o microcontroladores de todos modos es a parpadear un LED, por lo que necesita uno para completar esta sección. Conecte un LED al pin 2 como se muestra el pin más largo va al pin 1 y el pin más corto en el LED va a tierra.
La función aquí es un poco más compleja por lo que voy a explicar con la ayuda de los números de línea que se muestra en la imagen. Este es un fichero creado en el Bloc de notas o recomienda PSPad (también gratuito)
Línea 1: Este es un comentario nada siguiente / / se omite
Las líneas 2 y 4: Estas son las direcciones reales de los registros del microcontrolador particular que se describen en la hoja de datos para el PIC32 (familia MX1). El x 0 especifica que se se ha especificado un número hexagonal. Podrían utilizarse las direcciones reales, pero se ve mejor y es más fácil de recordar si se les da un nombre. Hay dos puertos de este particular dispositivo PORTA y PORTB y como se puede observar en el diagrama de cableado pin 2 a donde se conecta el LED se llama RA0. Esto significa que el primer bit del PORTA que normalmente se conoce como bit 0. Más información sobre esto y los registros más adelante.
Línea 5: El LED está conectado al bit 0 y queremos hacer referencia a este bit en varios lugares en la función así que tenemos la constante de valor 1 (poco confuso 0 se encuentra despejado y generalmente manipuladas utilizando un valor de 1). Por qué no basta 1 LED constante, bien podrían y que sería bien pero suponiendo que necesitamos para referirse a bit 15, esto sería constante LED 0x8000. Si usted trabaja que es hexagonal para el bit 15 (comenzando en 0) siendo alta o que podríamos hacer este LED 1 << 15 y conseguir exactamente el mismo resultado. El ' << ' es el operador de desplazamiento izquierdo y todo lo que hace es cambio el '1' 15 lugares a la izquierda - conveniente.
Línea 7: Todos los programas se hacen de las funciones, al igual que C pero a diferencia de C puede llamar en cualquier momento simplemente escribiendo ain su nombre. Una función debe tener () al final. Funciones más avanzadas pueden tener valores entre los soportes pero que está fuera de alcance de este artículo.
Línea 8: El TRIS registrar controles si el pin es una salida o una entrada, y el registro TRISA hace de PORTA. Si el bit 0 del TRISA se establece en 1 entonces RA0 será una entrada, si se establece a 0 entonces será una salida. El CLR en el final de la palabra, borrará (fije a 0) el pin especificado y SET en el final de la palabra será conjunto (1) el pin especificado. Así que esta línea es la creación RA0 a ser una salida.
Suplemento línea 8: La @ delante del nombre constante significa que el contenido. Simple configuración TRISACLR a LED cambiaría forma TRISACLR su valor actual de 0xBF886014 a 1. Mediante el uso de la @ estamos colocando un 1 en la dirección 0xBF886014, también podemos utilizar poke(TRISACLR,LED) que haría exactamente lo mismo.
Línea 9: La IC tiene entre otro hardware de ADC (análogo a digital) de las cosas y por defecto se establecen todos los pines a utilizar al ADC. Los controles de registro ANSEL esto, establecer el bit especificado en 0 hará que el pin en el puerto digital y 1 hará analógica. Así que esta línea hará RA0 en un pin digital.
Línea 10: Aquí podríamos simplemente doe un tiempo bucle que continuó para siempre (mientras lo haría 1 = 1) y para detener el parpadeo del LED simplemente reinicializar el programador. ¿Sin embargo para ser un poco más elegante utilizar comkey? (2). el controlador tiene dos puertos serie, UART1 y UART2. ¿La interfaz serial (conectada a los pines 21 y 22) es conectarse UART2 tan incorporado en la función comkey? ¿(2) devolverá el número de llaves en el búfer de clave UART2 así esto será lazo hasta que usted presione una tecla en el teclado que por supuesto será una clave en el búfer y así comkey? (0) = 0 no ocurrirá más.
Línea 11: El registro LAT es los pernos reales en el puerto para establecer cualquier bit de este registro alta o baja se reflejará en el puerto. También existe un registro de puerto que en este caso haría lo mismo pero este se protege y así que es mejor usar LAT salida y puerto de entrada (probablemente). Sólo como juego y CLR luego INV 'alterna' el pin especificado, para que fuera un 1 y luego se cambiaría a 0 y viceversa. Este es exactamente el comportamiento necesario para flash el LED
Línea 12: El comando de espera se especifica en milisegundos y así este parpadeará el LED a intervalos de 1 segundo.