PIC18F87K22 einstell Probleme
Mittwoch, 23. Mai 2012
 
 

PIC Mikrocontroller Forum  |  PIC Mikrocontroller  |  PIC Mikrocontroller Allgemein  |  PIC18F87K22 einstell Probleme « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: PIC18F87K22 einstell Probleme  (Gelesen 529 mal)
 
Rising
Newbie
*
Offline Offline

Beiträge: 38


Profil anzeigen
« am: November 25, 2011, 15:28:41 »

Hallo zusammen,

ich hab folgendes Problem, ich hab keine Ahnung wie ich in meinem C Code einstellen kann (mittel #pragma config bla bla bla), dass der PIC a) ein Oszillator für den Haupttakt und b) ein 32kHz Quarz extern für den RTCC hat.

Zudem kommt noch, weiß jemand wie ich denn die Uhr im PIC überhaupt stellen kann?
In Kapittel 18 steht zwar das es Register namens: HOUR, MINUTE ect gibt, wenn ich aber denen einen Wert zuweisen will sprich:

HOUR = 0x00;

dann schimpft der compiler.

hier der Link vom datenblatt.
ww1.microchip.com/downloads/en/DeviceDoc/39960d.pdf

RTCC abSeite 227.


Besten Dank vorab
rising
Gespeichert
Stampede
Globaler Moderator
Hero Member
*****
Offline Offline

Beiträge: 969



Profil anzeigen WWW
« Antworten #1 am: November 25, 2011, 20:34:16 »

Hi,,

Zitat
wie ich in meinem C Code einstellen kann (mittel #pragma config bla bla bla), dass der PIC a) ein Oszillator für den Haupttakt
MPLAB -> Help -> PIC18 COnfig

Zitat
In Kapittel 18 steht zwar das es Register namens: HOUR, MINUTE ect gibt, wenn ich aber denen einen Wert zuweisen will sprich:

HOUR = 0x00;

dann schimpft der compiler
Die Register sind RTCVALH und RTCVALL.

GRuß
Stefan
Gespeichert

Rising
Newbie
*
Offline Offline

Beiträge: 38


Profil anzeigen
« Antworten #2 am: November 25, 2011, 23:30:39 »

Hallo und Danke für die schnelle Antwort =)

wegen dem "config", genau sowas suchte ich und nun weiß ich ja wo es sthet, danke Smiley

Was hat das genau auf sich mit den Registern?
Kann ich nur über die zwei Register darauf zugreifen? Wenn Ja wie?

Die Werte können ja nicht alle in den zwei Registern drin stehen?

Danke und Gruß
rising
Gespeichert
Stampede
Globaler Moderator
Hero Member
*****
Offline Offline

Beiträge: 969



Profil anzeigen WWW
« Antworten #3 am: November 27, 2011, 13:18:00 »

Hi,

Zitat
Was hat das genau auf sich mit den Registern?
Kann ich nur über die zwei Register darauf zugreifen? Wenn Ja wie?
In die beiden Register kommen die Werte die du schreiben möchtest, vorher musst du mit dem RTCCFG einstellen welcher Wert (Minute, Stunde, etc.) geschrieben werden soll.

Gruß
Stefan
Gespeichert

Rising
Newbie
*
Offline Offline

Beiträge: 38


Profil anzeigen
« Antworten #4 am: November 27, 2011, 16:37:34 »

Hey,

besten Dank =)
jetzt macht das ganze einen Sinn.

Gruß
rising
Gespeichert
Rising
Newbie
*
Offline Offline

Beiträge: 38


Profil anzeigen
« Antworten #5 am: Dezember 26, 2011, 12:24:38 »

Hallo Stefan,

noch eine frage, und zwar versuch ich die Uhr (RTCC) zu stellen ABER es will nicht klappen
Code:
RTCCFGbits.RTCWREN = 1; //erlauben auf Uhr zu schreiben
RTCCFGbits.RTCEN = 1; //RTCC aktivieren

RTCCFGbits.RTCPTR1 = 0; //Minuten nach VALH schreiben
RTCCFGbits.RTCPTR0 = 0; //Sec. immer 0
RTCVALH = iMinuten;
RTCVALL = 0;

RTCCFGbits.RTCPTR1 = 0; //Wochentag nach VALH schrieben (0... 31)
RTCCFGbits.RTCPTR0 = 1; //Stunden nach VALL schreiben
RTCVALH = iWochenTag;
RTCVALL = iStunden;


RTCCFGbits.RTCPTR1 = 1; //Monat nach VALH schreiben
RTCCFGbits.RTCPTR0 = 0; //tag nach VALL schrieben (0... 6)
RTCVALH = iMonat;
RTCVALL = iTag;

RTCCFGbits.RTCPTR1 = 1; //Jahr nach VALL schrieben
RTCCFGbits.RTCPTR0 = 1;
RTCVALL = iJahr;

RTCCFGbits.RTCWREN = 0; //verweigern auf Uhr zu schreiben

egal ob ich am anfang RTCCFGbits.RTCEN   auf 1 oder 0 setzte es klappt nüx Traurig
Wenn ich mit dem ICD3 das Regsiter von Hand verändere werden die Zahlen übernommen.

Hast Du eine Idee was ich falsch mache?

PS: die Taktquelle hab ich so eingestellt:
Code:
#pragma config RTCOSC = SOSCREF //RTCC Clock Select (ext. Quarz)

Danke und Gruß
rising
Gespeichert
Stampede
Globaler Moderator
Hero Member
*****
Offline Offline

Beiträge: 969



Profil anzeigen WWW
« Antworten #6 am: Dezember 27, 2011, 12:07:53 »

Moin,

Die Taktquelle sieht gut aus, jedoch hast du die Unlocksequenz für das RTCWREN Bit vergessen.

Zitat
In order to perform a write to any of the RTCC Timer
registers, the RTCWREN bit (RTCCFG<5>) must be set.
To avoid accidental writes to the RTCC Timer register,
it is recommended that the RTCWREN bit
(RTCCFG<5>) be kept clear when not writing to the
register. For the RTCWREN bit to be set, there is only
one instruction cycle time window allowed between the
55h/AA sequence and the setting of RTCWREN. For
that reason, it is recommended that users follow the
code example

Code:
EE2CON = 0x55;
EE2CON = 0xAA;
RTCCFGbits.RTCWREN = 1;

Dann sollte es gehen.

Gruß
Stefan
« Letzte Änderung: Dezember 27, 2011, 15:43:56 von Stampede » Gespeichert

Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  

Powered by MySQL Powered by PHP Made for Mozilla (Firefox) Made for Internet Explorer
Seite erstellt in 0.037 Sekunden mit 17 Zugriffen.
 
Top! Top!