www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RTCC PIC24 - primary/secondary oscillator


Autor: Mirco H. (mirq)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte das RTCC-Modul des pic24HJ128GP502 verwenden, allerdings ist 
mir der prinzipielle Ablauf noch unklar.
Ich verwende bisher einen 4MHz crystal als primary oscillator und habe 
jetzt zusätzlich an SOSCI und SOSCO einen 32kHz watch crystal 
angeschlossen.
Wie kann ich den uC mit dem vom 4MHz crystal abgeleiteten Takt und das 
RTCC-Modul gleichzeitig mit dem Takt vom "secondary oscillator" laufen 
lassen? Als oscillator mode muss ich ja eines auswählen und 2 mal pro 
Sekunde einen clock switch machen erscheint mir ziemlich umständlich ..

Danke im Voraus.

Grüße, Mirco

Autor: Master Snowman (snowman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gegenfrage: welchen teil im datenblatt von "9.0 Oscillator 
Configuration" und "22.0 Real-Time Clock and Calendar" hast du nicht 
verstanden? ich vermute mal, du hast das "LPOSCEN"-bit nicht gesetzt ;-)

Autor: Manuel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Es laufen beide Oscillatoren gleichzeitig es ist kein clock switch 
nötig.

Gruss Manuel

Autor: Mirco H. (mirq)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke für die Antworten.
Mit dieser Initialisierung verändert sich der Wert in den 
RTCVAL-Registern nicht. Ist sie nicht korrekt oder unvollständig?
void init_rtcc()
{  
  OSCCONbits.LPOSCEN  = 1;

  NVMKEY = 0x55;  /* specific command sequence     */
  NVMKEY = 0xAA;   
  RCFGCALbits.RTCWREN = 1;
  
  RCFGCALbits.CAL     = 0;
  RCFGCALbits.RTCEN   = 1;  /* enable RTCC module  */
  RCFGCALbits.RTCOE   = 1;  /* output enable   */

  printf("init_rtcc done.\r\n");      
}

Grüße, Mirco

Autor: Manuel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Falls du den C30 Compiler verwendest kannst du das OSCCON Register
nicht direkt schreiben Microchip stellt folgende Funktionen zur 
Verfügung:
void __builtin_write_OSCCONL(unsigned char value); 
void __builtin_write_OSCCONH(unsigned char value); 

Weitere Infos unter:

http://ww1.microchip.com/downloads/en/DeviceDoc/70308B.pdf

oder in der Hilfedatei (hlpMPLABC30.chm)

Gruss Manuel

Autor: Manuel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Habe folgende Beispiel-Dateien bei Microchip gefunden:

Autor: Mirco H. (mirq)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Manuel,

vielen Dank für die Mühe.
Lag am Schreiben ins OSCCON-Register und funktioniert jetzt.

Grüße, Mirco

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.