TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: danfa42 en 02 de Octubre de 2010, 23:29:22
-
Buenas noches. Estoy tratando de implementar un programita para una modificacion de una placa que anteriormente habia hecho en assembler. Desde que empece con C (no hace mucho) quede prendido por su sencillez. El tema es que ahora quiero utilizar el comparador del 12F629 y no consigo hacerlo andar.
El compilador que uso es el CCS y este es el pregrama que estoy utilizando
#include <12F629.h>
#FUSES NOWDT, INTRC, NOCPD, NOPROTECT, NOMCLR, NOPUT, NOBROWNOUT, BANDGAP_HIGH, RESERVED
#use delay(clock=4000000)
void main()
{
setup_comparator(A1_VR);
setup_vref(VREF_LOW|8);
while(1){
output_low(PIN_A4);
delay_ms(10);
output_high(PIN_A5);
while (!input(C1OUT)){
}
while (input(C1OUT)){
}
delay_ms(250);
output_low(PIN_A5);
delay_ms(10);
output_high(PIN_A4);
delay_ms(250);
while (!input(PIN_A3)){
}
}
}
tengo un fototransistor en la pata 7 y lo que tiene que hacer es esperar una interrupcion del haz de luz, cuando se retorna a la normalidad espera un tiempo y sigue
-
Tu error esta en la forma en que usas C1OUT, ya que este es un bit interno del PIC por lo tanto no necesitas utilizar la funcion input para obtener su valor. Es decir solo necesitas realizar lo siguiente.
while(!C1OUT);
while(C1OUT);
Otra recomendación es que no necesitas abrir y cerrar llaves para decirle al compilador que el while está vacio, si pones un ";" al final de la linea será suficiente.