Los pines de E/S del PIC32 permiten monitorear y controlar otros dispositivos. La mayora de los pines del FPGA estn multiplexados con otras funciones de perifricos internos del PIC. Por ejemplo el pin 6 del PIC32MX534F064H que se muestra en la Figura 4-1 es el bit 8 del puerto G (RG8), pero ese mismo pin est multiplexado con la seal SCL de un mdulo I 2 C (SCL4), tambin est multiplexado con la seal SDO de un mdulo SPI (SDO2), y con otras seales ms de mdulos internos (U3TX, PMA3, CN10). Es responsabilidad del programador usar el pin de puerto o usar una seal de mdulo interno sin que se interfieran. Al reset todos los mdulos internos estn desactivados y los pines del PIC32MX funcionan solo como seales de puertos de Entrada/Salida. Cuando algn mdulo interno se habilita y usa un pin de un puerto, el uso del pin del puerto queda deshabilitado.
Figura 4-1. Algunos pines del PIC32MX534F064H
4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 37 Registros de Control Antes de realizar una operacin de lectura o escritura de algun puerto, los pines a utilizar deben ser configurados apropiadamente. Cada puerto tiene 4 registros asociados: TRIS, PORT, LAT y ODC; cada pin de puerto tiene un bit correspondiente en cada uno de estos registros. Los PIC32MX tienen los puertos llamados Puerto A, Puerto B, Puerto C, Puerto D, Puerto E, Puerto F y Puerto G. Cada uno de estos puertos tiene los registros antes mencionados. Por ejemplo para el Puerto A, los registros se llaman TRISA, PORTA, LATA y ODCA. En la siguiente explicacin nos referiremos a TRISx, PORTx, LATx y ODCx, donde x representa el puerto (A, B, C, D o E).
Registro TRISx El registro TRISx se usa para configurar el sentido de datos del puerto, puede ser Entrada (con 1) o Salida (con 0). Una manera recomendable de recordar esto es 1 de Input y 0 de Output.
Registro PORTx Por medio del registro PORTx se accede a los datos de los pines. Cuando se escribe en PORTx, se escribe en el latch del puerto. Cuando se lee el PORTx, se lee el valor directamente del pin.
Registro LATx Este registro est directamente conectado con el latch del puerto. Cuando se escribe en el LATx se escribe en el latch del puerto y cuando se lee el LATx se lee del latch del puerto.
4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 38 Registro ODCx Cada pin de puerto puede ser individualmente configurado para salida digital normal o salida de drenaje-abierto. Esta configuracin se realiza por medio del registro ODCx. Si el bit del ODC para un pin est en 1, entonces el pin acta como salida de drenaje abierto. Si el bit del ODC est en 0 la salida digital es normal. Este uso slo es valido cuando el bit del puerto es salida.
La salida de tipo drenaje-abierto permite enviar voltajes mayores a VDD usando una resistencia de pull-up externa. Tenga en cuenta que el voltaje mximo que se le puede conectar por medio de la resistencia de Pull-up es de 5.5V. La Figura 4-2 explica la diferencia de la salida digital normal y la salida de drenaje abierto.
Figura 4-2. Salida Drenaje-abierto
4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 39 La Figura 4-3 muestra un diagrama a bloques de un puerto tpico multiplexado.
Figura 4-3. Diagrama a bloques de un puerto tpico multiplexado
El Problema de la escritura Cuando se enva un dato de salida por un puerto, los PIC32 usan una secuencia conocida como Read-Modify-Write (RMW). Esto puede causar comportamientos inesperados bajo ciertas circunstancias. Cuando un programa cambia el estado de un pin, por ejemplo RB0 del PORTB, el microcontrolador realiza la siguiente secuencia: 1. LEE todos los bits del PORTB (lee los pines fsicos). 2. Almacena este dato ledo en un registro interno. 3. Modifica el bit deseado (RB0). 4. Escribe todos los bits de vuelta al registro PORTB. 4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 40 El problema de esto ocurre cuando el pin que se desea modificar (RB0) tiene una carga que afecta el estado lgico. Por ejemplo un LED sin resistencia limitadora de corriente o una carga con alta capacitancia o inductancia. Por ejemplo si el programa es el siguiente: _RB0 = 1; _RB1 = 1;
Asumiendo que el puerto est inicialmente en 0 y que todos los pines son salidas. Supongamos que conectamos un capacitor descargado en el pin RB0.
La primera lnea _RB0=1 realiza lo siguiente:
Figura 4-4. Secuencia RMW en _RB0 = 1
La siguiente lnea _RB1 = 1 realiza lo siguiente: 4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 41
Figura 4-5. Secuencia RMW para _RB1=1
Como resultado tenemos 00000010 en el puerto en lugar de 00000011.
Existen 2 soluciones a este problema: SOLUCION 1: MODIFICAR TODO EL PUERTO En lugar de modificar un solo bit, modificar todo el puerto. Por ejemplo en lugar de escribir _RB0 = 1; _RB1 = 1;
Escribimos PORTB = 0x3;
Sin embargo esta operacin modifica todo el PORTB y tal vez los otros pines no se desean cambiar. 4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 42 SOLUCIN 2: USAR LATx EN LUGAR DE PORTx Si modificamos el bit 0 usando LATB en lugar de PORTB, se realiza la misma secuencia (RMW) pero la lectura no la realiza de los pines fsicos sino del registro LATB. Entonces en lugar de escribir _RB0 = 1; _RB1 = 1;
Escribimos _LATB0 = 1; _LATB1 = 1; Y el problema queda resuelto. Con esto llegamos a la siguiente regla: Regla del uso de puertos: Cuando usemos un puerto x como entrada usamos PORTx y cuando usamos el puerto como salida usamos LATx. 4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 43 Ejemplo 1. Uso de Puertos de Entrada/Salida El siguiente ejemplo muestra el uso de los pines de entrada/salida para leer el estado de interruptores (DSW1) y cambiar el estado de los LEDs. La Figura 4-6 muestra el diagrama utilizado para este ejemplo. Para este circuito podemos usar solamente la alimentacin que nos proporciona el USB a travs del cable y nos ahorramos usar una fuente externa como muestra la figura.
Figura 4-6. Diagrama Electrnico para Ejemplo 1
Este programa realiza 3 rutinas en las salidas (RE0-RE7) en funcin del estado de las entradas (RB0, RB1, RB4, RB5). Las rutinas son las siguientes: Si la entrada RB0 tiene un 1 parpadea los LEDs. 4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 44 Si la entrada RB1 tiene un 1 muestra un contador ascendente en los LEDs. Si la entrada RB4 y RB5 tienen 11 muestra un contador descendente en los LEDs. El cdigo de este ejemplo se muestra en el Programa 4-1.
Programa 4-1. Uso de pines E/S #include <p32xxxx.h> #include "../librerias/retardos/retardos.h"
AD1PCFG = 0xFFFF; // configura AN pins como digitales TRISB = 0x0033; //bits 0, 1, 4 y 5 como entradas TRISE=0; // puerto E como salida
contador = 0; while(1) { //Si RB0=1 parpadea LEDs if(_RB0) { LATE = 0; retardoms(100); // retardo de aproximadamente 100ms LATE = 0xFF; retardoms(100); } //de lo contrario si RB1=1 else if(_RB1) { LATE = contador; contador++; retardoms(100); } //de lo contrario si RB4 y RB5 = "11" else if(_RB4 && _RB5) { LATE = contador; contador--; retardoms(100); } } return 0; }
4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 45 PRCTICA 1. Uso de Puertos de Entrada/Salida a) Arme el circuito del ejemplo anterior mostrado en la Figura 4-6, grabe y compruebe el funcionamiento del Ejemplo. b) Crear un nuevo proyecto el cual realizar las 4 rutinas que se describen a continuacin, considerando las entradas en este orden RB5,RB4,RB1,RB0: 1. Si las entradas son 0001 realiza una rutina de rotacin a la derecha de 1 slo bit en los 8 bits de salida. 2. Si las entradas son 0010 realiza una rutina de rotacin a la izquierda de 1 slo bit en los 8 bits de salida. 3. Si las entradas son 0100 realiza una rutina de ojo de kit en los 8 bits de salida. 4. Si las entradas son 1000 realiza un contador binario de 2 en 2, iniciando en 0, en los 8 bits de salida. 5. Si las entradas son cualquier otra combinacin, muestra los LEDs apagados. Toda rutina es independiente de las dems y debe continuar en el estado que se qued, por ejemplo si el contador se queda en 12 cuando el usuario cambia de rutina, si se regresa de nuevo a la rutina contador, debe seguir contando a partir de 12.
4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 46 Interfaces Digitales de Distintos Voltajes Los PIC32MX se pueden alimentar en un rango de 2.3V a 3.6V. Un voltaje comn de alimentacin es 3.3V. Por lo tanto, si VDD es 3.3V, los pines son capaces de enviar 3.3V de salida y son capaces de recibir hasta 3.3V de entrada. Cuando se conectan 2 dispositivos que operan a distintos voltajes, es necesario conocer los valores de umbral de entrada y salida de cada uno. Una vez que se conocen estos valores se puede seleccionar una tcnica para realizar la conexin. La Figura 4-7 muestra los niveles de umbral de salida (V OH , V OL ) y de entrada (V IH , V IL ) que se deben de cumplir cuando hacemos una conexin de 2 dispositivos digitales.
Figura 4-7. Niveles lgicos y mrgenes de ruido [16] Conexin de 3.3V a 5V Existen varias formas de realizar una conexin de 3.3V de salida digital a 5V de entrada digital. 1. Forma Directa Cuando queremos conectar una salida digital del PIC32 de 3.3V a una entrada digital de 5V, podemos realizar la conexin directa siempre y cuando se cumplan los siguientes requerimientos: 4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 47 El V OH de la salida de 3.3V es mayor que el V IH de la entrada de 5V. El V OL de la salida de 3.3V es menor que el V IL de la entrada de 5V. La Tabla 4-1 muestra los niveles de V OH y V OL del PIC32MX534F064H. Tabla 4-1. Caractersticas de DC: Especificaciones de salida de pin
2. Usando Salida de Drenaje Abierto Si necesitamos enviar voltajes mayores a VDD por algn pin, ya vimos que configurando dicho pin como salida de drenaje abierto (bit del ODC en 1) y una resistencia de pull-up conectada a una fuente separada de voltaje mayor (mximo 5.5V), es posible enviar voltajes de 5 (como se muestra en la Figura 4-8).
Figura 4-8. Salida de drenaje abierto con pull-up 4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 48 3. Usando un transistor MOSFET Para realizar una conexin de 3.3V a 5V o a mayor voltaje podemos usar un transistor MOSFET como se muestra en la Figura 4-9.
Figura 4-9. Conexin de 3.3V a 5V con MOSFET
Para seleccionar el valor de R 1 deben considerarse 2 parmetros; la velocidad de conmutacin de la seal a enviar y el consumo de corriente a travs de R 1 . Cuando se conmuta de 0 a 1, debemos considerar el tiempo que toma en subir el voltaje debido a la constate de tiempo RC formada por R 1 y la capacitancia de la entrada de 5V (C IN ), adems de capacitancias parsitas formadas en la tablilla (C S ). La velocidad a la que puede conmutar la entrada (T SW ) est dada por la frmula: [10] Como las capacitancias son fijas, la nica manera de permitir mayor velocidad de conmutacin es disminuyendo R 1 , sin embargo al hacer esto, aumenta la corriente de la fuente de 5V a travs de la resistencia y el chip de 5V o a travs del MOSFET. 4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 49 Cuando se seleccione el MOSFET canal-N, escoja uno cuyo voltaje de umbral VGS sea menor que el V OH del PIC32. Existen otros mtodos para realizar este tipo de conexiones, sin embargo estos 3 pueden ayudarnos a resolver casi cualquier interface de 3.3V a 5V. Para ver ms sobre trucos de interfaces de diferentes voltajes vea la referencia [10] Microchip. 3V Tips n Tricks. DS41285a, Microchip Technology Inc. 2006.
Conexin de 5V a 3.3V Que pasa si queremos conectar un sensor con interface de 5V al microcontrolador que funciona a 3.3V? Al igual que las interfaces de 3.3V a 5V, existen diversas formas de conectar dispositivos de salida de 5V con dispositivos de entrada de 3.3V. 1. Forma directa Se puede realizar una conexin directa solo si los pines del microcontrolador son tolerantes a 5V como se muestra en la Figura 4-10.
Figura 4-10. Conexin directa con pines tolerantes a 5V [10]
En la hoja de datos del PIC32 que queremos usar se muestra la configuracin de pines de cada encapsulado. En esta configuracin podemos ver cuales pines son tolerantes a entradas de 5V. La Figura 4-11 muestra el diagrama de pines del 4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 50 PIC32MX534F064H con encapsulado QFN-64. Observe en este diagrama que los pines oscuros son tolerantes a 5V. Nota: Tenga en consideracin que si los pines NO son tolerantes a 5V se puede daar el chip si conectamos circuitos digitales de 5V.
Figura 4-11. Diagrama de Pines [9] 2. Interface con diodo Se puede usar un diodo para aislar la seal de 5V del dispositivo de 3.3V como se muestra en la Figura 4-12. El diodo no permite que pasen los 5V, por lo tanto se requiere una resistencia (R1) a 3.3V para lograr el 1 lgico. El 0 lgico equivaldra al voltaje del diodo; por esta razn se usan diodos Schottky ya que tienen un voltaje 4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 51 menor (tipicamente 0.2 V) el cual debe ser menor que V IL para que sea considerado como 0 lgico.
Figura 4-12. Interface con diodo [17]
La Tabla 4-2 tomada de la hoja de datos, muestra los niveles de voltaje V IL y V IH
del PIC32MX534F064H. Tabla 4-2. Caractersticas de DC: Especificaciones de pines de entrada [9]
4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 52 3. Interface con transistor BJT La Figura 4-13 muestra como usar un transistor 2N3904 para hacer una interface de 5V a 3.3V. Como se puede ver se requiere una resistencia (R2) del lado de los 3.3V. Una resistencia limitadora de corriente (R1) se usa del lado de 5V. Cuando el lado de 5V se ponga en nivel alto, Q1 conducir llevando la entrada de 3.3V a tierra. Cuando la salida de 5V est en nivel bajo, Q1 no conduce y R2 sube el voltaje a 3.3V. Observe que esta interface con transistor invierte la lgica de la seal. Sin embargo podemos compensar por software esta inversin.
Figura 4-13. Interface de 5V a 3.3V con transistor BJT [17]
4. Interface con transistor FET La Figura 4-14 muestra la misma interface usando un transistor FET, en lugar de un BJT. En este arreglo R2 se sigue utilizando para subir el voltaje a 3.3V, sin embargo R1 se conecta a tierra para asegurar que Q1 est apagado cuando la salida de 5V est flotando (por ejemplo cuando el pin aun no se configura como salida).
Figura 4-14. Interface con transistor FET [17] 4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 53 Al igual que la interface con BJT, esta interface tambin invierte la lgica de la seal. Sin por alguna razn no podemos invertir la seal por software para compensar, podemos crear un buffer de 2 etapas para invertir otra vez dejando la lgica igual. La Figura 4-15 muestra est interface de 2 etapas.
Figura 4-15. Interface con FET de 2 etapas [17]
5. Interface con Optoacoplador La interface con optoacoplador funciona de manera similar a la realizada con transistor, sin embargo provee aislamiento elctrico entre los 2 dispositivos. Esta caracterstica es muy til cuando se tiene ruido elctrico presente en la seal. La Figura 4-16 muestra la interfaz de 5V a 3.3V por medio de un optoacoplador 4N25. Observe que si queremos un aislamiento elctrico las tierras no deben ser comunes. Al igual que las interfaces con transistor, la lgica de la seal se invierte.
Figura 4-16. Interface con optoacoplador [17] 4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 54 Otra ventaja de la interfaz con optoacoplador es que es posible prevenir que la seal se invierta conectando la entrada del opto como se muestra en la Figura 4-17.
Figura 4-17. Interfaz con optoacoplador sin inversin de seal [17] Los optoacopladores son muy tiles para realizar interfaces a dispositivos de mayor voltaje, tales como 12V de sistemas automotrices o 24V en aplicaciones industriales. 6. Interfaz con Buffer La Figura 4-18 muestra una interfaz con un buffer 74LVC244A, el cual es un buffer octal, con 2 grupos de 4 puertos con habilitaciones separadas. Este chip provee un buffer de salida de 3.3V y las entradas pueden aceptar entradas de 5V y 3.3V. Las salidas son capaces de proporcionar 50mA y la alimentacin est en el rango de 1.65V a 3.6V. La comunicacin es unidireccional. Cuando un pin OE est en nivel alto, las salidas son de alta impedancia, cuando el pin OE est en nivel bajo, el dato pasa de la entrada A a la salida Y. Las entradas no utilizadas se conectan a tierra para reducir ruido y consumo de potencia.
Figura 4-18. Interfaz con Buffer [17] 4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 55 7. Interfaz con traductor de voltaje Una forma de realizar una interfaz bidireccional entre 2 dispositivos de voltajes diferentes es usando un circuito traductor de voltaje. La Figura 4-19 muestra un traductor TXB0108PW. Este chip usa 2 alimentaciones diferentes como se muestra en la figura.
Figura 4-19. Interfaz con traductor de voltaje [17]
4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 56 Display de Cristal Lquido (LCD) Nuestra primer interfaz de 3.3V - 5V ser con un display LCD alfanumrico de 16x2. Las pantallas de cristal lquido o LCD (Liquid Crystal Display) alfanumricas permiten mostrar mensajes y con esto podemos dotar a nuestros circuitos de una interfaz mas llamativa para el usuario. Un LCD comnmente usado debido a su bajo costo y disponibilidad es la pantalla alfanumrica de 16 caracteres por 2 renglones mostrada en la Figura 4-20
Figura 4-20. Display 2x16
El funcionamiento de esta pantalla puede revisarlo en su hoja de datos o recomiendo el libro Microcontrolador PIC16F84 Desarrollo de proyectos de Enrique Palacios para una explicacin en espaol mas detallada. Para el uso de este LCD haremos uso de una librera llamada alpha_lcd modificada para el uso del PIC32. El cdigo de esta librera lo puede ver en el APNDICE B y la puede descargar de la pgina de la materia. En el archivo alpha_lcd.h de la librera puede modificar los pines del PIC32 que se conectan con el LCD. El Display LCD que usaremos se alimenta con 5V, por lo tanto su interfaz digital es de 5V, sin embargo el PIC32 lo alimentaremos con 3.3V. Entonces para poder saber que tipo de interfaz usar, debemos analizar las caractersticas elctricas del display. La Tabla 4-3 muestra dichas caractersticas del display JHD162A. Para la interfaz de salida del PIC32 (de 3.3V a 5V); como podemos observar un nivel lgico de entrada alto del LCD (V IH ) est en el rango de 2.2 a VDD, entonces podemos realizar la interfaz de manera directa, ya que el nivel de voltaje alto del PIC32 (V OH ) es mayor que el V IH del LCD. 4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 57 Tabla 4-3. Caractersticas Elctricas del display JHD162A
Para la interfaz de entrada del PIC32 (de 5V a 3.3V) simplemente usaremos pines tolerantes de 5V. La Figura 4-21 muestra la interfaz de conexin del PIC32 con el display usando interfaz directa con pines tolerantes a 5V. 4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 58 Ejemplo 2: Uso de Display LCD 16x2 El siguiente ejemplo demuestra el uso del LCD 16x2 con la librera alpha_lcd. Este ejemplo simplemente muestra 2 mensajes en el display, como se muestra en la figura.
Figura 4-21. Diagrama de conexin
4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 59 Programa 4-2. Uso de LCD 16x2
//Muestra cadena en rengln 2 putsLCD("EN PIC32!!");
while(1) { }
return 0; }
Ejemplo 3: Mostrar valores numricos en LCD 16x2 Las funciones de la librera alpha_lcd slo nos permiten mostrar caracteres y cadenas de caracteres en el display, que el display LCD alfanumrico recibe cdigos ASCII y muestra el carcter asociado al cdigo. Si queremos mostrar el contenido de variables, como resultados de operaciones matemticas, primeramente necesitamos convertir el valor numrico a cadena para luego mostrarlo en el display. Para convertir un dato numrico a cadena podemos hacer uso de la funcin sprintf de la librera stdio.h. La Figura 4-22 muestra la descripcin de esta funcin dada por el documento 32-bit Language Tools Libraries, el cual describe las funciones que contiene el lenguaje C32. 4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 60
Figura 4-22. Funcin sprintf [11]
La funcin sprintf se usa de la siguiente manera: Si queremos convertir el contenido de una variable short llamada num a una cadena y almacenarla en strNum el procedimiento sera el siguiente: short num; //declaro mi variable short char strNum[6]; //declaro mi cadena strNum de 6 bytes porque //el nmero mximo contiene 6 bytes(65535 + 0);
//asigno algn valor a la variable num num = 100;
//Convierto a cadena el contenido de num sprintf(strNum,%d,num);
//Muestro en LCD putsLCD(strNum); Tambin podemos convertir variables del tipo flotante a cadena usando la funcin sprintf, inclusive podemos decirle la cantidad de decimales que incluya en la cadena, por ejemplo: double num; //declaro mi variable short char strNum[16]; //declaro una cadena capaz de contener un nmero // de 14 dgitos + punto decimal
//asigno algn valor a la variable num num = 100.54321;
//Convierto a cadena el contenido de num con 5 decimales sprintf(strNum,%.5f,num);
//Muestro en LCD putsLCD(strNum); 4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 61 El siguiente programa muestra un contador en el display LCD usando el mismo circuito del display mostrado anteriormente (Figura 4-21). Para hacer uso de la funcin sprintf se necesita agregar la librera stdio.h. Programa 4-3. Mostrar valores numricos en Display #include <p32xxxx.h> #include <stdio.h> #include "../../librerias/LCD/alpha_lcd.h" #include "../../librerias/retardos/retardos.h"
// configura pines AN como digitales AD1PCFG = 0xFFFF;
// configura LCD openLCD();
//Enva cadena "Numero en LCD" putsLCD("Numeros en LCD");
num = 0; while(1) { //se coloca en renglon 2 setDDRamAddr(0x40);
//convierte num a cadena en strNum sprintf(strNum,"%d",num);
//muestra strNum en display putsLCD(strNum);
//siguiente numero num++;
//espera aprox 200ms retardo1ms(200); }
return 0; }
4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 62 Libreras de C32 El lenguaje C32 provee una gran cantidad de funciones disponibles para ser usadas. Estas funciones bsicamente estn separadas en 2 categoras: Libreras geneales y Libreras para uso de perifricos. Libreras Generales En estas libreras encontramos las funciones estndar del lenguaje C, por ejemplo stdio.h, stdlib.h, string.h, time.h, math.h, etc. Tambin se tienen libreras de procesamiento digital de seales (DSP) para realizar operaciones comunes como multiplicaciones de vectores, filtros digitales y transformada de Fourier. Para acceder al documento que detalla todas las Libreras generales, en el MPLAB seleccione el men Help->Topics y dentro de este, seleccione C32 C Lib Guide(PDF). Libreras de Perifricos Adems de las librerias generales, el lenguaje C32 proporciona una gran variedad de funciones para el manejo de perifricos del PIC32, por ejemplo: Interrupciones, Timers, Modulos de comunicacin serial, ADC, RTCC, etc. Para acceder al documento que detalla todas las Libreras de Perifricos, en el MPLAB seleccione el men Help->Topics y dentro de este, seleccione C32 Peripheral Lib Guide.
4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 63 Tipos de datos de C32 La Tabla 4-4 muestra los tipos de datos enteros que maneja el lenguaje C32. Observe que el tipo de dato int es de 32 bits a diferencia de otras implementaciones del lenguaje C. Tabla 4-4. Tipos de datos enteros
La Tabla 4-5 muestra los tipos de datos de punto flotante que maneja el lenguaje C32. Tabla 4-5. Tipos de datos con punto flotante
El PIC32 no posee una unidad de punto flotante, de tal forma que todas las operaciones de punto flotante son realizadas por software y no por hardware. Por esta razn, las operaciones con punto flotante funcionan mucho ms lento que las operaciones con enteros.
4- Puertos de Entrada-Salida Ing. Juan Ramon Terven Salinas 64 PRCTICA 2: Funciones Trigonomtricas en LCD 16x2 Desarrolle un proyecto que muestra el seno y coseno en un display LCD alfanumrico como se muestra en la Figura 4-23. 1. Mostrar en el rengln 1 el seno. 2. Mostrar en el rengln 2 el coseno. 3. Debe mostrar automticamente el seno y coseno desde 0 hasta 359, al llegar a 360 el ngulo se regresa a 0. 4. De un retardo de aproximadamente de segundo entre cada actualizacin de la pantalla. Nota: Existen funciones que calculan el seno y coseno de variables de punto flotante en la librera de matemticas. Consulte las libreras generales.