No se que estoy haciendo mal a la hora de querer generar una señal cuadrada de frecuencia constante y ciclo de trabajo del 50%. Estoy utilizando for"s pero al momento de encender el pic pues solo me manda un nivel bajo si dejo fuera de los for los output y un nivel alto si dejo los output dentro de uno de los for.
Codigo:
#include <16f874A.h>
#fuses HS, NOPROTECT, NOWDT, NOPUT, NOBROWNOUT, NOLVP, NOCPD, WRT //define los fusibles que se deben poner en al parte al momento de programar
#use delay(clock=20000000) //le dice al compilador la velocidad del procesador y habilita el uso de las funciones delay_ms() and delay_us().
void main()
{
int i,j;
int periodo=1;
int ciclo=10;
set_tris_a(0x00);
set_tris_b(0xFF);
while(TRUE)
{
for(i=1;i=periodo;i++)
{
for(j=1;j=ciclo;j++)
{
//output_high(PIN_A0);
delay_ms(1);
}
}
output_high(PIN_A0);
for(i=1;i=periodo;i++)
{
for(j=ciclo;j<20;j++)
{
//output_low(PIN_A0);
delay_ms(1);
}
}
output_low(PIN_A0);
}
}
Ahora si que no se ni por donde. De antemano gracias por la ayuda