mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Clock Switching


Autor: Domi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich habe einen PIC24FJ128GA mit einem 8MHz Quartz. Im laufenden Betrieb 
möchte ich auf den internen LPRC umschalten und dannin den Sleep Modus 
wechseln. Wenn dann der PIC aus dem Sleep Modus durch den WDT geweckt 
wird, soll also der LPRC Takt aktiv sein.

Die Config Bits habe ich so definiert:
CONFIG1(JTAGEN_OFF & GCP_OFF & GWRP_OFF & COE_OFF & FWDTEN_ON & ICS_PGx2 
& WDTPS32768msec)
_CONFIG2(FCKSM_CSECMD & OSCIOFNC_ON & POSCMOD_HS & FNOSC_PRI)


Der Code für die Umschaltung sieht so aus:

  OSCCON &= 0x00FF;
  OSCCON |= 0x7800;    // unlock high byte
  OSCCON &= 0x00FF;
  OSCCON |= 0x9A00;

  OSCCON &= 0xF8FF;    // Switch to LPRC
  OSCCON |= 0x0500;

  OSCCON &= 0xFF00;
  OSCCON |= 0x0046;    // unlock low byte
  OSCCON &= 0xFF00;
  OSCCON |= 0x0057;

  OSCCON |= 0x0001;    // Oscillator switch enable

Jedoch funktioniert mir die Umschaltung nicht und der PIC bleibt 
weiterhin mit 8Mhz getaktet.

Bitte helft mir, ich bin schon mehr als 1 Tag am Datenblätter lesen und 
Microchip hat mir bis jetzt auch noch keine Antwort gegeben.

Danke und Gruss

Autor: domi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen
Ich habe die Lösung gefunden:

  // Clock Switching
  __builtin_write_OSCCONH(0x78); // Unlock OSCCON High Byte
  __builtin_write_OSCCONH(0x9A); //

  __builtin_write_OSCCONH(0x05); // clock Switch to Low-Power RC 
Oscillator LPRC (NOSC=0b101)

  __builtin_write_OSCCONL(0x46); // Unlock OSCCON Low Byte
  __builtin_write_OSCCONL(0x57); //

  __builtin_write_OSCCONL(0x01); // Start clock switching (enable)

Gruss an alle

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.