Haz una pregunta
  Foros de Electrónica » Principiantes » Cuestiones Elementales de Electrónica
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

07/03/2015 #41
Moderador

Avatar de D@rkbytes

m9197 dijo: Ver Mensaje
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:
Código 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 <30retardo 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.
08/03/2015 #42


Lo probare, gracias.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Cuestiones Elementales de Electrónica

Deseas aprender electrónica y necesitas ayuda para comenzar? Resuelve tus dudas en esta sección.

Cerrar
Foros de Electrónica » Principiantes » Cuestiones Elementales de Electrónica

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.