Нажмите для просмотра прикрепленного файла Цитата(Rst7 @ Jul 16 2009, 16:16)

Дык это и есть глаз-диаграмма, грубо говоря.
Наверное я слишком опрометчиво предложил Вам помощь, но я постараюсь оправдать ожидания.
Итак что сейчас есть.
0. Запустить Ваш пример мне не удалось, наверное было моей ошибкой написать про IAR ибо не волоку в нем нифига
1. Попробовал сделать свой пример, пока вот такой (см. вложение) на WinARM (тоже волоку в нем слабо). Там настройки GPIO, PLL и MAM сделанные практически тупым копипастом с Вашего проекта, единственное не стал заморачиваться с подсаживанием IARовских дефайнов (после нехитрых манипуляций - закомментирования конструкции{ if трам пам пам; error "этот файл только для ЯРА" endif} - подсадить не удалось) поэтому наскоро сделал свои дефайны битов
3. Пока функция дрыганья ногами не размещена в ОЗУ (просто делал чтобы посмотреть будут-ли шевеления ногами и т. п.), сейчас буду разбираться как разместиь ее где нада с помощью WinARM.
Продолжение в следующем посте
CODE
#include
#include
#include "lpc23xx.h"
void StartPLL(void);
void GPIOinit(void);
int main(void){
// MAM init
#define MODECTRL 0 //MODECTRL 1:0
#define CYCLES 0 //CYCLES 2:0
MAMCR = 0;
MAMTIM = 3< 40 MHz
MAMCR = 2<
StartPLL();
GPIOinit();
FIO2DIR = (1<<4)|(1<<3);
while(1)
FIO2PIN ^= (1<<4)|(1<<3);
return 0;
}
void StartPLL(void)
{
#define OSCRANGE 4
#define OSCEN 5
#define OSCSTAT 6
#define PLLC 1
#define PLLE 0
#define CLKSRC 0
#define MSEL 0 //MSEL 14:0
#define NSEL 16 //NSEL23:16
#define PLLSTAT_PLLC 25
#define PLLSTAT_PLLE 24
#define PLOCK 26
#define PCLK_GPIO 2 //PCLK_GPIO 3:2
// 1. Init OSC
SCS &=~(1< SCS |=(1< // 2. Wait for OSC ready
while (!(SCS&(1<
// 3. Disconnect PLL
PLLCON &=~(1< PLLFEED = 0xAA;
PLLFEED = 0x55;
// 4. Disable PLL
PLLCON &=~(1< PLLFEED = 0xAA;
PLLFEED = 0x55;
// 5. Select source clock for PLL
CLKSRCSEL = (1<
// 6. Set PLL settings 288 MHz (from 12MHz), Fpll=(2*12(M)*12MHz/1(N))
PLLCFG = ((12-1)<< PLLFEED = 0xAA;
PLLFEED = 0x55;
// 7. Enable PLL
PLLCON |= (1< PLLFEED = 0xAA;
PLLFEED = 0x55;
// 8. Wait for the PLL to achieve lock
while(!(PLLSTAT&(1<
// 9. Set clk divider settings
CCLKCFG = 6-1; // 1/6 Fpll
USBCLKCFG = 6-1; // 1/6 Fpll - 48 MHz
PCLKSEL0 = PCLKSEL1 = 0; // other peripherals
PCLKSEL1 |= 1<
// 10. Connect the PLL
PLLCON |= (1< PLLFEED = 0xAA;
PLLFEED = 0x55;
}
void GPIOinit(void)
{
#define GPIOM 0
#define IO0DIR (*(volatile unsigned long *)0xE0028008)
#define IO1DIR (*(volatile unsigned long *)0xE0028018)
// Set to inputs
IO0DIR =\
IO1DIR =\
FIO0DIR =\
FIO1DIR =\
FIO2DIR =\
FIO3DIR =\
FIO4DIR = 0;
// Enable Fast GPIO0,1
SCS |=1<
// clear mask registers
FIO0MASK =\
FIO1MASK =\
FIO2MASK =\
FIO3MASK =\
FIO4MASK = 0;
// Reset all GPIO pins to default primary function
PINSEL0 =\
PINSEL1 =\
PINSEL2 =\
PINSEL3 =\
PINSEL4 =\
PINSEL5 =\
PINSEL6 =\
PINSEL7 =\
PINSEL8 =\
PINSEL9 =\
PINSEL10= 0;
}
Теперь картинки (не знаю как загрузятся, поэтому номера называть не буду)
Легенда общая: желтый - сигнал с кварца (выход генератора контроллера)
зеленый - сигнал с P2.3
Правильно ли я понял технику измерений? Выскажите замечания, поправки, наставления на путь истинный

На одном из рисунков, где присутствует только сигнал с порта синхронизация велась от этого сигнала, приведен он только для оценки его формы и частоты.
Да не нравится мне что-то форма, но куда копать не знаю - помехи, кривая разводка платы, кривые измерения?
Да, в завершение.
Сейчас уже достаточно поздно, с работы выгоняют, поэтому завтра продолжу измерения, а пока посмотрю как в ОЗУ разместить функцию. В общем, второй этап измерений завтра ближе к вечеру.