¿Cómo cambiar la frecuencia del oscilador interno PIC?

1

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
    
pregunta Grady Player

1 respuesta

1

Soy tan tonto, había establecido la velocidad del Oscilador en una parte diferente del código justo después, usando la sintaxis reducida ...

&(OSCCONbits.IRCF0) == &IRCF0

    
respondido por el Grady Player

Lea otras preguntas en las etiquetas