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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.