He estado aprendiendo (intentando al menos) cómo trabajar con microcontroladores pic, y he notado este comportamiento que no estoy seguro de si es solo mi culpa o se supone que suceda. Escribí el siguiente programa con la esperanza de hacer un parpadeo. Parpadea muy bien cuando está conectado al pin etiquetado como RA2, pero cuando conecto el led al pin 15 (etiquetado como RA6 / OSC2 / CLKO en la hoja de datos) el led permanece encendido, como si lo hubiera conectado a Vdd. Luego, cuando lo vuelvo a colocar en RA2 donde pertenece, se apaga. La única manera de volver a encenderlo es conectando una resistencia de 10k entre Vdd y MCLR (como en la programación). ¿Que está sucediendo aquí? MCLR también es necesario cuando lo tocas en otros pines. ¿Estoy causando daño?
El circuito tiene 3 baterías AA que alimentan la imagen, con una resistencia de 330 y un led de 3 mm en serie desde el pin 1 (RA2) al pin 5 (masa).
pic16f88 datasheet
Código:
#include <xc.h>
__CONFIG(MCLRE_ON & CP_OFF & WDTE_OFF);
void main(){
TRISA = 0x0000;
// RB6 = 0b000010;
for(;;){
RA2 = 1;
Wait();
RA2 = 0;
Wait();
}
}
int Wait(void) // gives me a delay of 1/3rd a second or so
{
for (int i = 0; i < 50; i++)
{
}
}