Tengo el siguiente codigo:
#include <16F876.h>
#fuses HS,NOWDT,NOPUT,NOBROWNOUT,NOLVP,NOCPD,NOWRT,NODEBUG,NOPROTECT
#USE DELAY(clock=8000000)
#use fast_io(A)
#use fast_io(B)
#use fast_io(C)
#define LED1 PIN_B1
#define LED2 PIN_B2
#define Enciende(x) output_high(x)
#define Apaga(x) output_low(x)
#define Estado(x) input_state(x)
void main()
{
/*
set_tris_a(........GP4, GP3, GP2, GP1, GP0)
and 1 = input
0 = output
*/
set_tris_a(0b11000000);
set_tris_b(0b00000000);
set_tris_c(0b00000000);
setup_adc(ADC_OFF);
setup_adc_ports(NO_ANALOGS);
PORT_B_PULLUPS(FALSE);
signed int8 UnoPorciento = 8;
signed int8 Multiplicador = 1;
signed int8 PWM2 = 200;
delay_ms(1);
// PWM por las 2 Salidas del PIC
SETUP_TIMER_2(T2_DIV_BY_1,199,1);
SETUP_CCP1(CCP_PWM);
SETUP_CCP2(CCP_PWM);
while(TRUE)
{
if (Estado(PIN_A4)==1)
{
Enciende(LED1);
Multiplicador++;
delay_ms(500);
Apaga(LED1);
}
if (Estado(PIN_A5)==1)
{
Enciende(LED2);
Multiplicador--;
delay_ms(500);
Apaga(LED2);
}
if (Multiplicador < 0)
{
Multiplicador = 0;
}
if (Multiplicador > 100)
{
Multiplicador = 100;
}
set_pwm1_duty(UnoPorciento*Multiplicador); // 10Khz 1%
set_pwm2_duty(PWM2); // 10Khz 25%
}
}
Y tengo el pic montado en una protoboard, supuestamente el pic lo que deberia hacer es sacar siempre por el CCP2 un duty del 25% y darle corriente o por A4 o A5 aumentar o disminuir el duty del CCP1 en un 1%. Tambien enciende un led para que se vea que eso pasa al pulsar el boton ( conectar a +5 ).
Pues resulta que para nada actua como tal. Nada mas conectarlo a la corriente, los led's se empiezan a volver locos y empiezan a parpadear ( solamente si tengo las manos cerca de A4, parece como si A5 no hiciera nada). Si no tengo las manos cerca, tengo el led A5 siempre encendido. No se si esto es importante pero al conectarlo a la corriente por primera vez y tener las manos lejos me pasa que parpadean como 2 o 3 veces cada uno.
En las salidas pwm tengo conectados otros 2 led's para ver si hace algo y solamente esta encendido el LED de CCP2 (Supongo q el CCP 1 no lo llega a encender por estar a un 1%)
Supongo que esto sera un problema sencillo para ustedes, pero yo me estoy iniciando en el mundo de los pic y no entiendo muy bien porque pasa esto. Un amigo me dijo que tengo mucho ruido en el circuito y por eso me pasa, pero no sabria como arreglarlo.
Si necesitan el circuito o cualquier cosa diganlo y lo publico ( todavia sigo descargando el proteus y no puedo ).
Tengo un cristal de cuarzo de 8Mhz conectado.