LED parpadeante con PIC

#41
Muchas gracias. Era eso. Ya funciona!
Me parece bien. Sé que al ser nuevo en C o en PICC Compiler, tengas que usar el Wizard.
Pero no te lo recomiendo. Es mejor que seas tú quien defina las configuraciones.

Mucha información la puedes encontrar en la misma ayuda del programa con tan solo presionar la tecla F1.

Y por cierto. Al parecer estás realizando una secuencia de desplazamiento de bits.
Lo puedes hacer de una forma más sencilla si lo haces con bucles.
Por ejemplo, de ésta forma:
PHP:
#include <16f877a.h>             // Librería del microcontrolador
#use     delay(crystal = 4MHz)   // Frecuencia del oscilador (Incluye palabra de configuración)
#byte    portb = getenv("SFR:PORTB")   // Definir el puerto B


void main (void)                 // Programa principal.
{
   int8 i;                       // Variables de 8 bits.
   int16 retardo = 127;          // Variable de 16 bits. (Valor inicial = 127)
   
   setup_adc_ports(AN0);         // Configurar el ADC para el canal 0
   setup_adc(ADC_CLOCK_INTERNAL);   // El ADC usará el reloj interno RC
   set_adc_channel(0);           // Establecer el canal 0
   delay_us(50);                 // Dar un tiempo al conversor.
   
   set_tris_b(0x00);             // Todo el puerto B como salidas.
   portb = 1;                    // RB1 = 1
   delay_ms(retardo);            // Retardo inicial de 127 ms. (Mitad de 255)
   
   while (true)                  // Bucle infinito.
   {
      retardo = read_adc();
      if(retardo <30) retardo = 30; // No permitir que "retardo" sea menor a 30
      
      for(i=1;i<=7;i++)          // Bucle de 1 a 7 pasos.
      {
         portb <<=1;             // Desplazar hacia la izquierda el bit activo del puerto B.
         delay_ms(retardo);      // Retardo de x ms.
      }
      
      for(i=1;i<=7;i++)          // Bucle de 1 a 7 pasos.
      {
         portb >>=1;             // Desplazar hacia la derecha el bit activo del puerto B.
         delay_ms(retardo);      // Retardo de x ms.
      }
   }                             // Fin del bucle.
}                                // Fin del programa.
Este programa realiza una secuencia de bits en el puerto B y la velocidad es controlada con un potenciómetro de 10 KΩ en el pin RA0.
Si se desea, se pueden eliminar las instrucciones para el ADC y establecer un retardo fijo.

Suerte.
 
Arriba