Pièce jointe « capitulo4c.sgml »

Téléchargement

        <sect1 id="uart2" xreflabel="uart2">
                <title>M&oacute;dulo UART2</title>
                <para> Esta biblioteca nos ayudar&aacute; a convertir n&uacute;meros a binarios a formatos de de texto en representaci&oacute;n DECIMAL y HEXADECIMAL.</para>

                <para>
                <screen>
        #include &lt;uart2.h>
                </screen>
                </para>

                <sect2 id="puth" xreflabel="puth">
                <title>puth</title>
                <para>
                transforma la cifra hexadecimal (medio octeto) en 1 car&aacute;cter ASCII y lo envia.
                </para>
                <para>
                Por ejemplo si tienes el hexadecimal 0x4A y tomas el n&uacute;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&oacute;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&uacute;mero hexadecimal (un octeto) en 2  caracteres ASCII y lo envia.
                </para>
                <para>
                Por ejemplo, si tienes el hexadecimal 0x4A, puthex toma el n&uacute;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&uacute;mero entero de 16 bit en su representaci&oacute;n hexadecimal de 4 caracteres ASCII y luego los envia uno por uno.
                </para>
                <para>
                Por ejemplo, si tienes el n&uacute;mero 1030, putint lo transforma en su representaci&oacute;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&aacute;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&uacute;mero 0.
        Transforma el caracter '1' en el n&uacute;mero 1.
        Transforma el caracter '2' en el n&uacute;mero 2.
        ...
        Transforma el caracter 'a' &oacute; 'A' en el n&uacute;mero 10 (0x0a).
        Transforma el caracter 'b' &oacute; 'B' en el n&uacute;mero 11 (0x0b).
        ...
        Transforma el caracter 'f' &oacute; 'F' en el n&uacute;mero 15 (0x0f).

        //cualquier otro numero se convierte 0xff
                </screen>
                <para>Para obtener el caracter se utiliza la funci&oacute;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&uacute;mero 0x40 y toma el caracter "A" y lo transforma en el n&uacute;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&uacute;mero en hexadecimal y los transforma un  n&uacute;mero entero de 16 bit.
                </para>
                <para>
                Por ejemplo, si tienes los caracteres '0','4','0' y '6', getint devuelve el n&uacute;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&aacute;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&uacute;mero 0.
        Transforma el caracter '1' en el n&uacute;mero 1.
        Transforma el caracter '2' en el n&uacute;mero 2.
        ...
        Transforma el caracter '9' en el n&uacute;mero 9.

        //cualquier otro numero se convierte 0xff
                </screen>
                <para>Para obtener el caracter se utiliza la funci&oacute;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&oacute;n : ./compila.sh ej_uart2 16f877a
                </screen>
                </para>
                <para> ej_uart2.c </para>

                <screen>
#include &lt;pic/p16f877a.h>

#define FOSC_HZ 20000000

#include &lt;uart.h>
#include &lt;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.
 Tous les fichiers | Fichiers sélectionnés supprimer déplacer vers la page copier vers la page

Vous n'êtes pas autorisé à joindre un fichier à cette page.

Site hébergé sur un Cloud Public IKOULA Ikoula