#include<p18f4431.h>
void config_io()
{
TRISA=0X03;
ANSEL0=0X00;
}
void config_pwm()
{
PTCON0=0X00; //PE=4; MODO CONTÍNUO UP
PTCON1=0X80; //HABILITA CLOCK DO CONTADOR PTMR
PWMCON0=0X5F; //PINOS DO PWM= ON
PWMCON1=0X00;//HABILITA ATUALIZAÇÃO DOS REGISTRADORES
PTPERL=2000; //ESTABELECE FREQUENCIA 1KHz
PTPERH=2000>>8; //ROTACIONA 8BITS A DIREITA
PDC0L=((int)(2000*0.75))<<2;
PDC0H=((int)(2000*0.75))>>6;
PDC1L=((int)(2000*0.25))<<2;
PDC1H=((int)(2000*0.25))>>6;
OVDCOND=0X00; //PINOS PWM DESABILITADO
OVDCONS=0X00; //PINOS PWM DESABILITADO
}
void main()
{
OSCCON=0X72; //FREQUÊNCIA INTERNA SELECIONADA= 8MHz
config_io();
config_pwm();
while(1)
{
if((PORTAbits.RA0==1)&&(PORTAbits.RA1==0))
{
OVDCOND=0X09;
}
else if((PORTAbits.RA0==0)&&(PORTAbits.RA1==1))
{
OVDCOND=0X06;
}
else
{
OVDCOND=0X00;
}
}
}