TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: chris2508 en 25 de Noviembre de 2014, 00:46:19

Título: Generar pulsos cuadrados mediante PIC16f877
Publicado por: chris2508 en 25 de Noviembre de 2014, 00:46:19
hola que tal, tengo un problema con mi codigo y/o simulacion de un generador de pulsos cuadrados(pwm) por software, es regulable con un potenciometro configurado con el adc, para modificar el periodo de los pulsos, lo estoy generando con un pic 16f877, el problema es que en la simulacion, los pulsos no son completamente cuadrados, tienen un tipo de rampa, o inclinacion, no se como corregir ese error; el codigo es demaciado simple y me gustaria que porfavor me ayudaran a detectar el problema, aqui les dejo el codigo, es en PICC.
#include <16f877.h>
#device adc=10
#fuses NOWDT, PUT
#use delay(clock=4000000)
#byte portb=0x06
#byte trisb=0x86

void main(){

int x,y;

do{
trisb=0x00;
setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(AN0);
x=read_adc();
y=1023;
portb=0x01;
delay_ms(x);
portb=0x00;
delay_ms(y-x);
portb=0x00;
}
while(true);
}
Título: Re: Generar pulsos cuadrados mediante PIC16f877
Publicado por: KILLERJC en 25 de Noviembre de 2014, 04:48:22
le pusiste una carga o estas tomandolo directamente sin nada, ponele una resistencia de 1k en la simulacion, pero eso es problema de simulacion nomas
Título: Re: Generar pulsos cuadrados mediante PIC16f877
Publicado por: misterweb en 25 de Noviembre de 2014, 11:08:09
En cualquier caso si no te llegan a ser perfectamente cuadrado, montale un circuito monoastable, .
Título: Re: Generar pulsos cuadrados mediante PIC16f877
Publicado por: allennet en 28 de Noviembre de 2014, 13:09:39
ponle en DC y ya esta
Título: Re: Generar pulsos cuadrados mediante PIC16f877
Publicado por: KALLITOS en 28 de Noviembre de 2014, 16:38:42
El osciloscopio esta midiendo AC, cambiale a DC y queda.
Título: Re: Generar pulsos cuadrados mediante PIC16f877
Publicado por: chris2508 en 01 de Diciembre de 2014, 13:59:41
Muchas gracias por sus comentarios, el problema fue solucionado corrigiendo el codigo, el delay_ms, lo cambie a delay_ns, y esto genera una señal mas estable y recta... es la unica solucion que pude darle al problema... muchas gracias
Título: Re: Generar pulsos cuadrados mediante PIC16f877
Publicado por: KALLITOS en 02 de Diciembre de 2014, 12:33:52
seguro? existe ese delay?
Título: Re: Generar pulsos cuadrados mediante PIC16f877
Publicado por: KILLERJC en 02 de Diciembre de 2014, 12:50:48
Ademas el delay no le causaria ese problema.... si pones a 0 una salida se pondria a 0V y si pones a uno se pondria a 5V, cualquier otra cosa simulada ( a no ser un circuito externo ) deberia ser asi. a lo sumo puede no ser cuadrada perfecta y tener un rampa de subida y bajada pero como muestra proteus esta muy mal. En fin, solo es una simulacion.
Título: Re: Generar pulsos cuadrados mediante PIC16f877
Publicado por: chris2508 en 09 de Diciembre de 2014, 00:44:53
muchas gracias por sus comentarios, el delay que use era delay_us, me equivoque... y se corrigio en el circuito ya fisico, probablemente es un error en la simulacion