Detlef Schwarz schrieb:
1 | // Set prescale so we have a resolution of 1us
|
2 | LPC_PWM1->PR = SystemCoreClock / (4 * 1000000) - 1;
|
Der Code geht davon aus, das in SystemCoreCock der aktuelle Takt CCLK
steht,
und das der Clock Teiler (PCLKSELx) für PWM auf 4 (IIRC default)
gestellt ist. Dann würde der Zähler der PWM1 mit 1 MHz laufen.
Beispiel:
Systemakt CCLK ist 100 MHz => PWM1 PCLK Takt 25 MHz (DIV4).
SystemCoreClock 100000000 / 4*1000000 - 1 = 25 -1 = 24
Ergebnis: Prescaler PR wird auf 24 gesetzt, der PCM1 PCLK durch 25
geteilt => PWM1 Zähler zählt mit 1 MHz.
> The main oscillator can be used as the clock source for the CPU, with or
> without using
> PLL0. The main oscillator operates at frequencies of 1 MHz to 25 MHz
Andere Baustelle. Schau Dir mal die PLL0 Konfiguration an, die wird für
100 MHz zwingend gebraucht.