Módulo system

Aquí se ecnuentran algunas funciones de configuración

	#include <system.h>
		

sleep

Pone a dormir el microcontrolador

	void sleep(void);
		

ASM

Función que incrusta código ASSEMBLER

	void ASM(char comando[]);
		

Ejemplo System

Para compilar necesitas los siguientes comandos

Ejemplo de compilacion : ./compila.sh ej_system 16f877a
		

ej_system.c


#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;
}