Tengo este programa de ejemplo para parpadear LED con PIC18F4550 usando un oscilador externo.
Estoy usando un oscilador de cristal de 20.000 MHz con condensadores de 30pF.
El problema es cuando conecto los condensadores a tierra, el LED no parpadea (todavía está apagado), pero cuando los desconecto de la conexión a tierra (no cableada), el LED comienza a parpadear . Cambio de velocidad de parpadeo con _XTAL_FREQ
.
El programa funciona bien con el oscilador interno (solo configurando FOSC = INTOSCIO_EC
)
¿Hay cableado de dirección del capacitor u oscilador?
El terreno aquí es PIC Vss
Esto es cuando se usa PICKIT2 directamente. Cuando se usa el circuito solo como el esquema, no ocurre nada con la configuración FOSC = INTOSCIO_EC
(no funciona), pero funciona bien con el oscilador interno.
#include<p18f4550.h>#include"delays.h"
/* COMPILER DIRECTIVES FOR CHIP CONFIGURATION BITS*/
#pragma config FOSC = HS //INTOSCIO_EC /* Sets the oscillator mode to HS */
#pragma config WDT = OFF /* Turns the watchdog timer off */
#pragma config LVP = OFF /* Turns low voltage programming off */
#pragma config DEBUG = OFF /* Compiles without extra debug code */
#define _XTAL_FREQ 12000000 //delay_ms change by changing this
void main(void) {
TRISD = 0xF0; // PORT B Setting: Set all the pins in port B to Output.
while (1) {
LATDbits.LATD0 = 1; // RD-0 to High
LATDbits.LATD1 = 1; // RD-1 to High
__delay_ms(50); // Half sec delay
LATDbits.LATD0 = 0; // RD-0 to LOW
LATDbits.LATD1 = 0; // RD-1 to LOW
__delay_ms(50); // Half sec delay
}
}
/* THE END */