Forum: Mikrocontroller und Digitale Elektronik SystemCoreClock


von Detlef S. (zeche1)


Lesenswert?

Hi,

ich kann mir folgendes nicht erklären:

// Set prescale so we have a resolution of 1us
    LPC_PWM1->PR = SystemCoreClock / (4 * 1000000) - 1;

Ich beschäftige mich noch nicht solange mit meinem Mikrocontroller 
LPC1768 (32Bit Cortex M3). Ich stehe sozusagen noch am Anfang und 
brauche Hilfe. Wie kommt man auf die Auflösung von 1 us und bedeutet es 
er inkremntiert jede 1us?
Wenn ich einen Systemtakt von 100 Mhz und evtl. prescale cclk/4

100000000/(4*1000000)-1

Ich habe noch folgendes in der UserManual gefunden:

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

Vielen Dank für die Hilfe

von Jim M. (turboj)


Lesenswert?

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.

von Detlef S. (zeche1)


Lesenswert?

Hi Jim,

vielen Dank für deine Antwort. Deine Erklärung hat mir beim verstehen 
geholfen.

Gruß Detlef

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.