Check the new version here

Popular channels

pwm pic18f4550

Código en PIC C

#include <18F4450.h>
#device ADC=16
#FUSES NOWDT
#FUSES WDT128
#FUSES NOBROWNOUT
#FUSES NOLVP
#FUSES NOXINST
#use delay(clock=1.97MHz)
#include
#use fast_io(B)
int32 ciclodetrabajo = 510;
#INT_RB
void INTERRUPCION_PUERTO_B(void)
{
if(input(pin_b5) == 1 && ciclodetrabajo < 1020){
ciclodetrabajo = ciclodetrabajo + 51;
}
if(input(pin_b7) == 1 && ciclodetrabajo > 0){
ciclodetrabajo = ciclodetrabajo - 51;
}
set_pwm1_duty(ciclodetrabajo);
}
void main()
{
int32 porcentaje;
char simbolo = '%';
lcd_init();
set_tris_B(0b11111111);
setup_timer_2(T2_DIV_BY_16,255,1);
setup_ccp1(CCP_PWM);
set_pwm1_duty(ciclodetrabajo);
enable_interrupts(INT_RB);
enable_interrupts(GLOBAL);
while(TRUE)
{
porcentaje = ((ciclodetrabajo*100)/(1020));
lcd_gotoxy(1,1);
printf(lcd_putc,"Ciclo de trabajo" );
lcd_gotoxy(1,2);
printf(lcd_putc,"%Lu %c ",porcentaje,simbolo);
}
}

Simulación en proteus 8

0
0
0
0
0No comments yet