This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

LPC11C14 clock frequency problem

I am using LPC11C14 board with 12Mhz crystal. Most of ASM instructions are 1 cycle, with entering C function takes 3 cycles and exiting takes 3 cycles.

__asm void test ()
{                                                       //3 cycles
        MOVS R1, #1                                     //1 cycle
        SUBS R1, R1, #1                                 //1 cycle
        CMP R1, #0                                      //1 cycle
        BEQ endf                                        //3 cycles
endf
        BX lr
}

So this function should take exactly 12 cycles which means it should take 1us to execute, but if I use oscilloscope and put gpio turn on-off i get around 3-4uS toggle.
Although simulator says that for gpio set/clear it takes 10 cycles, it is still missing some 20 cycles.

        LPC_GPIO0->DATA |= (1<<0);
        test ();
        LPC_GPIO0->DATA &= ~(1<<0);
        test ();
        LPC_GPIO0->DATA |= (1<<0);

I guess issue is somewhere in crystal settings or ? I was looking at settings for main clock, but I couldnt figured out whether it is defaulted to IRC oscillator and how to change it to use external crystal.

Parents Reply Children