#include <18F4550.h>
#fuses XT, MCLR, NOWDT
#use delay(clock = 4M)
void main(){
unsigned int16 P, PR2, duty;
PR2 = 124; // inicia com 124 , predefine com freq de 500 Hz
P = 50; // 50% , percentual desejado
setup_timer_2(T2_DIV_BY_16, PR2, 1); // qual é o prescaler, % desejado, postcaler = 1 para PWM
setup_ccp1(CCP_PWM);
duty = (unsigned int16)((PR2 + 1) * 4 * (P/100.0));
set_pwm1_duty(duty);
while(true){
}
}
Saída gerada no PicSimlab |
Nenhum comentário:
Postar um comentário