PIC18F87k22 RTCC

Gast #4472915
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!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren