mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LPC2138: Neueinstellen des CCLK


Autor: Klaus Saalfeld (div03eprakt)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
ich benutze einen LPC2138 mit einem 12MHz Quarz und den GNUARM C 
Compiler. Ich habe folgende Funktion geschrieben um die CCLK 
einzustellen. Mit dieser Funktion soll auch die CCLK nachträglich 
verändert werden können. Leider funktioniert das verändern der CCLK 
nicht (die MCU hängt oder startet manchmal neu). Was mache ich falsch?
// Disconnect and disable
SCB_PLLCON = 0x00;
HAL_CORE_PLL_Feed();
// Wait until PLL is unlocked
while(0 != (SCB_PLLSTAT & 0x40))
{
}
// Set M and P value and enable PLL
SCB_PLLCFG = my_Config;
SCB_PLLCON = 0x01;
HAL_CORE_PLL_Feed();
// Wait until PLL is locked
while(0 == (SCB_PLLSTAT & 0x40))
{
}
// Connect and enable PLL
SCB_PLLCON = 0x03;
HAL_CORE_PLL_Feed();
static VOID HAL_CORE_PLL_Feed()
{
__asm volatile(
// Disable FIQ and IRQ interrupts because of the feed-sequence
// and remember old FIQ/IRQ state in register R4
"MRS   R7, CPSR\n"      // save CPSR
"MOV   R0, R7\n"
"ORR   R0, #0xC0\n"      // set I-Bit and F-Bit
"MSR   CPSR_c, R0\n"    // disable IRQ and FIQ
// Feed-sequence to apply changes to PLLCON
"MOV   R3, %0\n"
"MOV   R4, #0xAA\n"
"MOV   R5, #0x55\n"
"STRB  R4, [R3]\n"      // write 0xAA to PLLFEED
"STRB  R5, [R3]\n"      // write 0x55 to PLLFEED
// Set FIQ/IRQ state to saved value
"MSR   CPSR_c, R7\n"    // restore CPSR
: : "r" (&SCB_PLLFEED)
);
}

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.