Pièce jointe « capitulo4c.sgml »
Téléchargement<sect1 id="uart2" xreflabel="uart2"> <title>Módulo UART2</title> <para> Esta biblioteca nos ayudará a convertir números a binarios a formatos de de texto en representación DECIMAL y HEXADECIMAL.</para> <para> <screen> #include <uart2.h> </screen> </para> <sect2 id="puth" xreflabel="puth"> <title>puth</title> <para> transforma la cifra hexadecimal (medio octeto) en 1 carácter ASCII y lo envia. </para> <para> Por ejemplo si tienes el hexadecimal 0x4A y tomas el número "A" (osea 10 en decimal - 1010 en binario), "puth" lo transforma en el caracter 'A' y lo envia. </para> <screen> Transforma el numero "0" en el caracter '0'. Transforma el numero "1" en el caracter '1'. Transforma el numero "2" en el caracter '2'. ... Transforma el numero "A" en el caracter 'A'. Transforma el numero "B" en el caracter 'B'. ... Transforma el numero "F" en el caracter 'F'. </screen> <para>El caracter generado es enviado usando la función miputc.</para> <screen> void puth(void (*miputc)(char),char a); </screen> </sect2> <sect2 id="puthex" xreflabel="puthex"> <title>puthex</title> <para> transforma un número hexadecimal (un octeto) en 2 caracteres ASCII y lo envia. </para> <para> Por ejemplo, si tienes el hexadecimal 0x4A, puthex toma el número "4" lo transforma en el caracter '4' y lo envia con miputc, toma el numero "A" lo transforma en el caracter 'A' y lo envia con miputc. </para> <para> <screen> 0x4A => miputc('4'); miputc('A'); </screen> </para> <para> <screen> void puthex(void (*miputc)(char),char nb); </screen> </para> </sect2> <sect2 id="putint" xreflabel="putint"> <title>putint</title> <para> transforma un número entero de 16 bit en su representación hexadecimal de 4 caracteres ASCII y luego los envia uno por uno. </para> <para> Por ejemplo, si tienes el número 1030, putint lo transforma en su representación en HEXADECIMAL "0x0406", putint toma '0','4','0','6' y los envia con miputc. </para> <screen> 1030 => 0x0406 => miputc('0'); miputc('4'); miputc('0'); miputc('6'); </screen> <screen> void putint(void (*miputc)(char),int num); </screen> </sect2> <sect2 id="geth" xreflabel="geth"> <title>geth</title> <para> Lee un carácter ASCII y lo transforma en una cifra hexadecimal. </para> <para> Por ejemplo si lees el caracter "A" , "geth" lo transforma en el numero 10 en decimal codificado en binario BCD. </para> <screen> Transforma el caracter '0' en el número 0. Transforma el caracter '1' en el número 1. Transforma el caracter '2' en el número 2. ... Transforma el caracter 'a' ó 'A' en el número 10 (0x0a). Transforma el caracter 'b' ó 'B' en el número 11 (0x0b). ... Transforma el caracter 'f' ó 'F' en el número 15 (0x0f). //cualquier otro numero se convierte 0xff </screen> <para>Para obtener el caracter se utiliza la función migetc.</para> <screen> char geth(char (*migetc)(void)); </screen> </sect2> <sect2 id="gethex" xreflabel="gethex"> <title>gethex</title> <para> Lee 2 caracteres ASCII y transforma en número hexadecimal. </para> <para> Por ejemplo, si tienes dos caracteres ASCII como "4" y "A", gethex toma el caracter "4" y lo transforma en el número 0x40 y toma el caracter "A" y lo transforma en el número 0x0A luego los une en 0x4A. </para> <para> <screen> miputc('4'); miputc('A'); => 0x4A </screen> </para> <para> <screen> char gethex(char (*migetc)(void)); </screen> </para> </sect2> <sect2 id="getint" xreflabel="getint"> <title>getint</title> <para> Lee 4 caracteres ASCII que representan un número en hexadecimal y los transforma un número entero de 16 bit. </para> <para> Por ejemplo, si tienes los caracteres '0','4','0' y '6', getint devuelve el número 1030. </para> <para> <screen> miputc('0'); miputc('4'); miputc('0'); miputc('6'); => 0x0406 => 1030 </screen> </para> <para> <screen> int getint(char (*migetc)(void)); </screen> </para> </sect2> <sect2 id="getd" xreflabel="getd"> <title>getd</title> <para> Lee un carácter ASCII y lo transforma en una sola cifra decimal. </para> <para> Por ejemplo si lees el caracter "2" , "getd" lo transforma en el numero 2 en decimal codificado en binario BCD. </para> <screen> Transforma el caracter '0' en el número 0. Transforma el caracter '1' en el número 1. Transforma el caracter '2' en el número 2. ... Transforma el caracter '9' en el número 9. //cualquier otro numero se convierte 0xff </screen> <para>Para obtener el caracter se utiliza la función migetc.</para> <screen> char geth(char (*migetc)(void)); </screen> </sect2> <sect2 id="ejemplouart2" xreflabel="Ejemplo UART2"> <title>Ejemplo de UART2</title> <para> para compilar necesitas los siguientes comandos </para> <para> <screen> Ejemplo de compilación : ./compila.sh ej_uart2 16f877a </screen> </para> <para> ej_uart2.c </para> <screen> #include <pic/p16f877a.h> #define FOSC_HZ 20000000 #include <uart.h> #include <uart2.h> int main (void) { char a=0x4a; int x=1030; delayms(100); uart_open(SET_9600_8N1); uart_puts("UART2\n"); puthex(uart_putc,a); uart_putc('\n'); putint(uart_putc,x); uart_putc('\n'); uart_puts("FIN\n"); delayms(100);//dar un poco de tiempo para que se envie el ultimo caracter uart_close(); return 0; } </screen> </sect2> </sect1>
Fichiers joints
Pour vous référer aux pièces jointes d'une page, utilisez attachment:filename, comme indiqué ci-dessous dans la liste de fichiers. N'utilisez pas l'URL du lien [get], car elle peut changer et donc être facilement cassée.Vous n'êtes pas autorisé à joindre un fichier à cette page.