Использую system_LPC17xx.c. Задал множители (мне нужно 100МГц при 12МГц кварце. Получаю M=25, N=2, PLLclk=300 (в диапазоне), CCLKSEL=2)
Отсюда:
CCLK = ((2*12*25)/2)/3 = 100МГц
По даташиту CCLKSEL может принимать нечетные значения. Однако system_LPC17xx.c ругается:
Цитата
Startup\system_LPC17xx.c(352): error: #35: #error directive: "CCLKCFG: CCLKSEL field does not contain only odd values or 0!"
проверка там такая:
Код
#if ((CCLKCFG_Val != 0) && (((CCLKCFG_Val - 1) % 2)))
#error "CCLKCFG: CCLKSEL field does not contain only odd values or 0!"
#endif
#error "CCLKCFG: CCLKSEL field does not contain only odd values or 0!"
#endif
Версии:
UM10360 Rev. 2 — 19 August 2010
system_LPC17xx.c - V1.1 18th May 2009
Я понимаю, конечно, что верить нужно даташиту, но неспроста же эта проверка была введена?
UPD
Я могу изменить множители (M=50, N=3), попасть в диапазон PLL (<550MHz) и получить свой стольник, деля на 4. Интересна природа момента