Доброго времени суток всем!!! Вопрос такой.... Имеется проц lpc 2148. Работаю в Keil V3.33. Загоняю во flash через Flash Utilyty следующий код :
#include "LPC214x.h"
//#include <LPC214x.h>
//#include <LPC21xx.H>
#include <stdio.h>
#include <ctype.h>
#include <inttypes.h>
void main( void )
{
IODIR1 |= 1 << 24;
while(1)
{
IOSET1 = 0x01000000;
IOCLR1 = 0x01000000;
/* __asm { nop };
__asm { nop };
__asm { nop };
__asm { nop };
__asm { nop };
__asm { nop };
__asm { nop };
__asm { nop };
__asm { nop };
__asm { nop };
*/
}
}
И осцилом по дрыгающейся ножке наблюдаю, что одно прохождение сего while занимает 1.3 мкс... При частоте 60 Mhz не до фига ли получается ????
Расскоменчиваю нопы и получаю:
#include "LPC214x.h"
//#include <LPC214x.h>
//#include <LPC21xx.H>
#include <stdio.h>
#include <ctype.h>
#include <inttypes.h>
void main( void )
{
IODIR1 |= 1 << 24;
while(1)
{
IOSET1 = 0x01000000;
IOCLR1 = 0x01000000;
__asm { nop };
__asm { nop };
__asm { nop };
__asm { nop };
__asm { nop };
__asm { nop };
__asm { nop };
__asm { nop };
__asm { nop };
__asm { nop };
}
}
Время прохождения while = 2.25 мкс... Т.е 10 nop он выполняет за 1 мкс...т.е 1 nop за 0.1 мкс, что соответствует частоте 10 Mhz. Непонятно, т.к проц настроен на 60 Mhz....
Настройки PLL - M = 5, P = 2.
MAMTIM = 4
На всякий случай пристегиваю startup с инициализацией..... Заранее спасибо за помощь.