Получаю, на мой взгляд, очень странный резултат.
кварц на плате 14 MHz, PLL Множитель = 3. Компилирую - IAR EWARM v5.50, Prcessor mode - Arm, Optimisation - High(speed).
так инициализирую PLL
Код
void LPC2294PLLInit(void)
{
PLLCFG_bit.MSEL = 2;
PLLCFG_bit.PSEL = 1;
PLLCON_bit.PLLE = 1;
PLLCON_bit.PLLC = 1;
PLLFEED_bit.FEED = 0xAA;
PLLFEED_bit.FEED = 0x55;
}
{
PLLCFG_bit.MSEL = 2;
PLLCFG_bit.PSEL = 1;
PLLCON_bit.PLLE = 1;
PLLCON_bit.PLLC = 1;
PLLFEED_bit.FEED = 0xAA;
PLLFEED_bit.FEED = 0x55;
}
и выполняется код
Код
unsigned char a_buf[255];
for(unsigned char i=0; i<100; i++)
{
a_buf[i]=i;
}
for(unsigned char i=0; i<100; i++)
{
a_buf[i]=i;
}
На выполнение этого кода, процессору требуется примерно 100us, что мне кажется очень много.
После разрешения прерываний по таймеру(прерывание каждый 15us, обработчик выполняется 7us), это время становится 800us и это уже катастрофически много. я ожидал увеличения примерно в два раза.
Не понятно что не так делаю, не могу поверить что, LPC2294 не может работать быстрее
Канечно по такому описанию проблемы, трудно посоветовать,

