Oscilador interno de PIC16f884 no cambia la frecuencia en el siguiente código:
#pragma config BOREN=0,IESO=0,FOSC=INTRC_NOCLKOUT,MCLRE=1,WDTE=0,CP=1,LVP=0
volatile unsigned char counter = 0;
void setup( void )
{
ANSEL = 0x00; // all digital
TRISD = 0x00; // all RD is output
//
OSCCONbits.IRCF2 = 0;
OSCCONbits.IRCF1 = 0;
OSCCONbits.IRCF0 = 0;
OSCCONbits.SCS = 1;
while(!OSCCONbits.HTS);
//interrupt timer0
IRCF0 = 1;
IRCF1 = 1;
IRCF2 = 1;
}
No importa qué valores asigno a OSCCONbits.IRCFx
la velocidad del reloj (medida con una luz intermitente) nunca cambia ... La única otra forma en que esto podría comportarse de esta manera, es si _delay
fuera de alguna manera Ajuste el tiempo constante en lugar de los clics, pero no creo que ese sea el caso.
EDITAR: Soy tonto ...
¿Por qué no funciona esto?
int i = 0;
int *p = &i;
i = 0 // no matter what i change this to i is always one.... dumb
*p=1