Pièce jointe « capitulo1l.sgml »
Téléchargement <sect1 id="system" xreflabel="system">
<title>Módulo system</title>
<para> Aquí se ecnuentran algunas funciones de configuración </para>
<para>
<screen>
#include <system.h>
</screen>
</para>
<sect2 id="sleep" xreflabel="sleep">
<title>sleep</title>
<para> Pone a dormir el microcontrolador </para>
<screen>
void sleep(void);
</screen>
</sect2>
<sect2 id="asm" xreflabel="asm">
<title>ASM</title>
<para> Función que incrusta código ASSEMBLER </para>
<screen>
void ASM(char comando[]);
</screen>
</sect2>
<sect2 id="ejemplosystem" xreflabel="Ejemplo System">
<title>Ejemplo System</title>
<para> Para compilar necesitas los siguientes comandos </para>
<para>
<screen>
Ejemplo de compilacion : ./compila.sh ej_system 16f877a
</screen>
</para>
<para> ej_system.c </para>
<screen>
#include <pic/p16f877a.h>
#include <system.h>
#include <pinio.h>
int main(void)
{
unsigned char dato=0xF0;
unsigned char res;
//Puerto B como salida
ASM("BANKSEL TRISB");
ASM("MOVLW 0x00");
ASM("MOVWF TRISB");
//0xF0 --> PORTB
ASM("BANKSEL F_REG");//dato se encuentra en el banco de F_REG
ASM("MOVF %0,W"::"r" (dato));
ASM("BANKSEL PORTB");
ASM("MOVWF PORTB");
//PORTB --> res
ASM("BANKSEL PORTB");
ASM("MOVF PORTB,W");
ASM("BANKSEL F_REG");//res se encuentra en el banco de F_REG
ASM("MOVWF %0":"=v" (res));
//cuando termines de escribir en asembler
//siempre debes dejarlo en el banco de F_REG,
//de lo contrario el programa falla.
//Pongo a dormir al micro
sleep();
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.

