Projeto 9: Gerando sinal de PWM através do módulo de Timer

18/01/2017

PIC18F4431

// Frequencia do sinal de PWM = 2kHz (500useg) com 80% de Duty Cicle
#include<p18f4431.h>
#include<timers.h>
unsigned int timer=0;
void config_io()
{
TRISA=0X01;
TRISC=0X00;
ANSEL0=0X00;
}
void main()
{
OSCCON=0X72;
config_io();
OpenTimer0(TIMER_INT_OFF
&T0_16BIT
&T0_SOURCE_INT
&T0_PS_1_1);
while(1)
{
if(PORTAbits.RA0==1)
{
timer=ReadTimer0();
if(timer<=800) // 400useg
{
PORTC=0x01;
}
else if((timer>800)&&(timer<1000)) // (400useg + 100useg)
{
PORTC=0X00;
}
else if(timer>=1000) // em 500useg reinicia o sinal
{
WriteTimer0(0);
}
}
else
{
WriteTimer0(0);
timer=0;
PORTC=0X00;
}
}
}

© 2016 Dnl Silva. São Paulo - SP
Desenvolvido por Webnode
Crie seu site grátis! Este site foi criado com Webnode. Crie um grátis para você também! Comece agora