Banner publicitario de PCBWay
desktop

Dos VCO con Pic de 8 pines

Era justo lo que queria... asi que me propuse a hacerlo, a pesar de mi falta de experiencia en los microcontroladores... :rolleyes:

Código:
unsigned int temp1=0, temp2=0;
void main () {
ADCON0 = 0x00; // Inicializar
ANSEL  = 0b001010;   // Se va a usar el AN1 y el AN3 como entradas para el ADC
CMCON  = 0x07;     // Deshabilita los comparadores
GPIO = 0;  // Initializa los puertos GPIO
WPU = 0;   //apaga los pull ups (no se para que? jeje)
TRISIO = 0b011010; // configura GP0 y GP3 como salidas digitales
ANSEL  = 0b001010;  // Lo pongo de nuevo por si acaso jeje
VCFG_bit = 0;    // esto es obvio, esta incluido en el ADCON0 creo
Delay_ms (30);   // Retardito por si acaso

do {
   if(temp1==0){
                ADCON0 = 0b001100;
                GPIO.F2 = ~GPIO.F2; // GP2 cambia de estado
                temp1 = (ADC_Read(3)*1)+10; // Read AN3 channel
   }// Tanto el factor que multiplica al ADC_Read(3) como el termino que se suma sirve para calibrar el rango del VCO
   temp1--; // tiempo en que dura el semiciclo positivo y el negativo del 1er VCO
   if(temp2==0){
                ADCON0 = 0b001100;
                GPIO.F0 = ~GPIO.F0; // GP0 cambia de estado
                temp2 = (ADC_Read(1)*1)+10; // Read AN1 channel
   }   //
   temp2--; // tiempo en que dura el semiciclo positivo y el negativo del 2do VCO
} while (1); // endless loop
}

Aqui esta el codigo para que lo prueben, lo simulen, agradezcan, critiquen o mejoren.

Espero sus ideas..

P.D: Uso mikro c y el pic 12f675.. Pero la misma logica se puede aplicar para otros lenguajes, otros programas y otros pics
 
Última edición:
Atrás
Arriba