Buenos días a todos. Tengo un pequeño problema con mi PIC16F690 montado en una protoboard.
¿Hay alguien que le pueda echar un vistazo rápido al código y decirme por qué no funciona?
Sólo consigo que se haga la lectura del 0 en la entrada que he declarado.
Vengo de arduino y este es uno de los primeros códigos que escribo en PIC.
Gracias. Aquí el código:
Gracias.
¿Hay alguien que le pueda echar un vistazo rápido al código y decirme por qué no funciona?
Sólo consigo que se haga la lectura del 0 en la entrada que he declarado.
Vengo de arduino y este es uno de los primeros códigos que escribo en PIC.
Gracias. Aquí el código:
Código:
#include <xc.h>
#include <stdio.h>
#include <stdlib.h>
// CONFIG
#pragma config FOSC = INTRCCLK // Oscillator Selection bits (INTOSC oscillator: CLKOUT function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled and can be enabled by SWDTEN bit of the WDTCON register)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = OFF // MCLR Pin Function Select bit (MCLR pin function is MCLR)
#pragma config CP = OFF // Code Protection bit (Program memory code protection is disabled)
#pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled)
#pragma config BOREN = OFF // Brown-out Reset Selection bits (BOR disabled)
#pragma config IESO = OFF // Internal External Switchover bit (Internal External Switchover mode is disabled)
#pragma config FCMEN = ON // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is enabled)
#define _XTAL_FREQ 2000000
void main (void){
TRISAbits.TRISA0 = 0;
TRISCbits.TRISC0 = 1;
if ( PORTCbits.RC0 == 0)
{__delay_ms(50);
if (PORTCbits.RC0 == 0)
{ PORTAbits.RA0 = 0;
__delay_ms(50);
PORTAbits.RA0 = 1;
__delay_ms(50);
}
}
else
if ( PORTCbits.RC0 == 1)
{ __delay_ms(250);
if (PORTCbits.RC0 == 1)
{PORTAbits.RA0 = 0;
}
}
}
Última edición por un moderador: