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
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
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.