Autor Tema: PWM inestable  (Leído 1528 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado marcelo2112

  • PIC12
  • **
  • Mensajes: 64
PWM inestable
« en: 15 de Octubre de 2010, 15:17:32 »
Hola, estoym tratando de hacer funcionar un PWM mediante ADC y desplegar el valor en un LCD. Pero la señal es inestable. Haber si me pueden decir porque. Gracias.

#include <16f877a.h>
#device adc=10               ///   libreria para el manejo del pic16f877a
#use delay(clock=4000000)          ///   declara  la frecuencia del cristal
#fuses XT,NOWDT,NOPUT,NOLVP,NOBROWNOUT,NOWRT,NOPROTECT
#include <lcd.c>
void main(void)

{
float ct ,bits;
setup_adc_ports(ALL_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
bits=read_adc();
set_adc_channel(0);
set_tris_c(0);
setup_timer_2(T2_DIV_BY_16,207,1);// El periodo de la señal PWM de 3.3 ms.
setup_ccp1(CCP_PWM); // Configura CCP1 en modo PWM

lcd_init();
lcd_gotoxy(6,1);
lcd_putc("PWM");
delay_ms(1000);
lcd_putc("\f");

while(true)
{
set_adc_channel(0);
delay_us(10);
bits=read_adc();
delay_us(10);
set_pwm1_duty(bits);// La anchura del pulso



ct=(bits*100)/1023;
lcd_gotoxy(1,1);
lcd_putc("FREC=300 HZ");
lcd_gotoxy(1,5);
printf(LCD_PUTC,"CICLO T=%4.2f",ct);

}}