Forum: Mikrocontroller und Digitale Elektronik PIC18F87k22 RTCC


von Jan (Gast)


Lesenswert?

Hallo Zusammen

Ich möchte bei meinem Projekt mit dem PIC18F87k22 den RTCC (REAL-TIME 
CLOCK AND CALENDAR) verwenden. Ich habe bereits vieles versucht, jedoch 
bis jetzt keinen Erfolg gehabt.
Ich möchte mit dem RTCC jede Minute einen „Alarm“ am RTCC Pin (RG4). Ich 
möchte den internen Clock verwenden.
Die Konfiguration funktioniert so derzeit nicht und am RTCC Pin liegt 
dauernd eine 0 an.
Kann mir Jemand helfen und sagen was ich falsch mache?

Hier mein bisheriger Code:
1
/***  Include and Header files   ******************************************************************************/
2
3
  #include <xc.h>                 //by Microchip
4
    #include <p18f87K22.h>      //by Microchip
5
6
/***  Configuration PIC   *********************************************************************************/
7
8
// PIC18F87K22 Configuration Bit Settings
9
// Use project enums instead of #define for ON and OFF.
10
11
12
// PIC18F87K22 Configuration Bit Settings
13
14
// 'C' source line config statements
15
16
// #pragma config statements should precede project file includes.
17
// Use project enums instead of #define for ON and OFF.
18
19
// CONFIG1L
20
#pragma config RETEN = OFF      // VREG Sleep Enable bit (Disabled - Controlled by SRETEN bit)
21
#pragma config INTOSCSEL = HIGH // LF-INTOSC Low-power Enable bit (LF-INTOSC in High-power mode during Sleep)
22
#pragma config SOSCSEL = HIGH   // SOSC Power Selection and mode Configuration bits (High Power SOSC circuit selected)
23
#pragma config XINST = OFF      // Extended Instruction Set (Disabled)
24
25
// CONFIG1H
26
#pragma config FOSC = INTIO2    // Oscillator (Internal RC oscillator)
27
#pragma config PLLCFG = ON      // PLL x4 Enable bit (Enabled)
28
#pragma config FCMEN = OFF      // Fail-Safe Clock Monitor (Disabled)
29
#pragma config IESO = OFF       // Internal External Oscillator Switch Over Mode (Disabled)
30
31
// CONFIG2L
32
#pragma config PWRTEN = OFF     // Power Up Timer (Disabled)
33
#pragma config BOREN = SBORDIS  // Brown Out Detect (Enabled in hardware, SBOREN disabled)
34
#pragma config BORV = 3         // Brown-out Reset Voltage bits (1.8V)
35
#pragma config BORPWR = ZPBORMV // BORMV Power level (ZPBORMV instead of BORMV is selected)
36
37
// CONFIG2H
38
#pragma config WDTEN = SWDTDIS  // Watchdog Timer (WDT enabled in hardware; SWDTEN bit disabled)
39
#pragma config WDTPS = 1048576  // Watchdog Postscaler (1:1048576)
40
41
// CONFIG3L
42
#pragma config RTCOSC = 0       // RTCC Clock Select (RTCC uses SOSC)
43
#pragma config EASHFT = ON      // External Address Shift bit (Address Shifting enabled)
44
#pragma config ABW = MM         // Address Bus Width Select bits (8-bit address bus)
45
#pragma config BW = 16          // Data Bus Width (16-bit external bus mode)
46
#pragma config WAIT = OFF       // External Bus Wait (Disabled)
47
48
// CONFIG3H
49
#pragma config CCP2MX = PORTC   // CCP2 Mux (RC1)
50
#pragma config ECCPMX = PORTE   // ECCP Mux (Enhanced CCP1/3 [P1B/P1C/P3B/P3C] muxed with RE6/RE5/RE4/RE3)
51
#pragma config MSSPMSK = MSK7   // MSSP address masking (7 Bit address masking mode)
52
#pragma config MCLRE = ON       // Master Clear Enable (MCLR Enabled, RG5 Disabled)
53
54
// CONFIG4L
55
#pragma config STVREN = ON      // Stack Overflow Reset (Enabled)
56
#pragma config BBSIZ = BB2K     // Boot Block Size (2K word Boot Block size)
57
58
// CONFIG5L
59
#pragma config CP0 = OFF        // Code Protect 00800-03FFF (Disabled)
60
#pragma config CP1 = OFF        // Code Protect 04000-07FFF (Disabled)
61
#pragma config CP2 = OFF        // Code Protect 08000-0BFFF (Disabled)
62
#pragma config CP3 = OFF        // Code Protect 0C000-0FFFF (Disabled)
63
#pragma config CP4 = OFF        // Code Protect 10000-13FFF (Disabled)
64
#pragma config CP5 = OFF        // Code Protect 14000-17FFF (Disabled)
65
#pragma config CP6 = OFF        // Code Protect 18000-1BFFF (Disabled)
66
#pragma config CP7 = OFF        // Code Protect 1C000-1FFFF (Disabled)
67
68
// CONFIG5H
69
#pragma config CPB = OFF        // Code Protect Boot (Disabled)
70
#pragma config CPD = OFF        // Data EE Read Protect (Disabled)
71
72
// CONFIG6L
73
#pragma config WRT0 = OFF       // Table Write Protect 00800-03FFF (Disabled)
74
#pragma config WRT1 = OFF       // Table Write Protect 04000-07FFF (Disabled)
75
#pragma config WRT2 = OFF       // Table Write Protect 08000-0BFFF (Disabled)
76
#pragma config WRT3 = OFF       // Table Write Protect 0C000-0FFFF (Disabled)
77
#pragma config WRT4 = OFF       // Table Write Protect 10000-13FFF (Disabled)
78
#pragma config WRT5 = OFF       // Table Write Protect 14000-17FFF (Disabled)
79
#pragma config WRT6 = OFF       // Table Write Protect 18000-1BFFF (Disabled)
80
#pragma config WRT7 = OFF       // Table Write Protect 1C000-1FFFF (Disabled)
81
82
// CONFIG6H
83
#pragma config WRTC = OFF       // Config. Write Protect (Disabled)
84
#pragma config WRTB = OFF       // Table Write Protect Boot (Disabled)
85
#pragma config WRTD = OFF       // Data EE Write Protect (Disabled)
86
87
// CONFIG7L
88
#pragma config EBRT0 = OFF      // Table Read Protect 00800-03FFF (Disabled)
89
#pragma config EBRT1 = OFF      // Table Read Protect 04000-07FFF (Disabled)
90
#pragma config EBRT2 = OFF      // Table Read Protect 08000-0BFFF (Disabled)
91
#pragma config EBRT3 = OFF      // Table Read Protect 0C000-0FFFF (Disabled)
92
#pragma config EBRT4 = OFF      // Table Read Protect 10000-13FFF (Disabled)
93
#pragma config EBRT5 = OFF      // Table Read Protect 14000-17FFF (Disabled)
94
#pragma config EBRT6 = OFF      // Table Read Protect 18000-1BFFF (Disabled)
95
#pragma config EBRT7 = OFF      // Table Read Protect 1C000-1FFFF (Disabled)
96
97
// CONFIG7H
98
#pragma config EBRTB = OFF      // Table Read Protect Boot (Disabled)
99
100
/***  VARIABLES   *********************************************************************************/
101
102
        #define _XTAL_FREQ      4000000         //Fosc  frequency for _delay() library (4MHz)
103
104
/***  PRIVATE PROTOTYPES   ***********************************************************************/
105
106
void Init(void);      //Aufruf der Initialisierung vor Ausführung des main()
107
108
//******************************************************************************
109
//      MAIN PROGRAM
110
//******************************************************************************
111
void main(void)
112
{
113
  Init();        //Initialisierung
114
    
115
  while(1)      //Endlosschleife
116
  {
117
  }
118
}//end main();
119
120
//*********************************************************************************************
121
//      INITIALISIERUNG PIC
122
//*********************************************************************************************
123
124
void Init(void)
125
{
126
127
/***  SET VALUES OF VARIABLES   ***********************************************************/
128
129
/***  Set Inputs, Outputs   ***************************************************************/
130
//*//   All PINs with an * are free usable I/O PINs  //*//
131
132
    //PORTA A0-A5
133
  TRISAbits.TRISA0 = 1;    //set RA0 as INPUT    used for Taster 1
134
  TRISAbits.TRISA1 = 1;    //set RA1 as INPUT    used for Taster 2
135
  TRISAbits.TRISA2 = 1;    //set RA2 as INPUT    used for Taster 3
136
  TRISAbits.TRISA3 = 1;    //set RA3 as INPUT    used for Taster 4
137
  TRISAbits.TRISA4 = 1;    //set RA4 as INPUT    used for Taster 5
138
    TRISAbits.TRISA5 = 1;    //set RA5 as INPUT    used for Schalter 1
139
    //RA6 see the OSC2/CLKO/RA6 pin.
140
    //RA7 see the OSC1/CLKI/RA7 pin.
141
142
143
  //PORTB B0-B7
144
  TRISBbits.TRISB0 = 0;    //set RB0 as OUTPUT    used as BT-mode
145
  TRISBbits.TRISB6 = 1;    //set RB6 as INPUT    used as PGC
146
  TRISBbits.TRISB7 = 1;    //set RB7 as INPUT    used as PGD
147
148
  //PORTC C0-C7
149
    TRISCbits.TRISC6 = 0;    //set RC6 as OUTPUT    used as BT-UART TX
150
  TRISCbits.TRISC7 = 1;    //set RC7 as INPUT    used as BT-UART RX
151
152
    //PORTG G0-G4
153
  TRISGbits.TRISG4 = 0;    //set RG4 as OUTPUT    used for RTCC Pin
154
  //RG5 used as MCLR
155
156
157
158
    RTCWREN = 1;                //RTCC Value Registers Write Enable bit
159
                                //RTCVALH and RTCVALL registers can be written to by the user
160
    RTCEN = 1;                  //RTCC module is enabled
161
    RTCOE = 1;                  //RTCC clock output is enabled
162
    
163
    AMASK3 = 0;                 //Alarm Mask Configuration bits
164
    AMASK2 = 0;                 //set to: Every 10 seconds
165
    AMASK1 = 1;
166
    AMASK0 = 0;
167
    
168
    ARPT7 = 0;                  // ALARM REPEAT REGISTER
169
    ARPT6 = 0;
170
    ARPT5 = 0;
171
    ARPT4 = 1;
172
    ARPT3 = 1;
173
    ARPT2 = 1;
174
    ARPT1 = 1;
175
    ARPT0 = 1;
176
    
177
}//end Initialization();
178
/***  end of file  *********************************************************************************************/

Vielen Dank für eure Hilfe!

: Verschoben durch User
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
Noch kein Account? Hier anmelden.