pic18f46j50 RTCC, can't get it to work.

Thread Starter

bug13

Joined Feb 13, 2012
2,002
Hi guys

I have trouble setting up RTCC, the idea is to setup an alarm (say 5 seconds later), trigger an interrupt and wake up the MCU.

Here is my code:

Code:
void setup_rtcc(void)
{
    rtccTimeDate RtccResetTimeDate;
    rtccTimeDate RtccAlarmTimeDate;

    RtccInitClock();                            //turn on clock source
    RtccWrOn();                                 //enable write to RTCC registers
    PIE3bits.RTCCIE = 1;                   //enable interrupt

    //set up clock time
    RtccResetTimeDate.f.hour = 0x01;
    RtccResetTimeDate.f.min = 0x00;
    RtccResetTimeDate.f.sec = 0x00;
    RtccResetTimeDate.f.mday = 0x04;
    RtccResetTimeDate.f.mon = 0x04;
    RtccResetTimeDate.f.year = 0x09;
    RtccResetTimeDate.f.wday = 0x06;

    //set up alarm time to be 5 second later
    RtccAlarmTimeDate.f.hour = RtccResetTimeDate.f.hour;
    RtccAlarmTimeDate.f.min = RtccResetTimeDate.f.min;
    RtccAlarmTimeDate.f.sec = RtccResetTimeDate.f.sec + 0x05;
    RtccAlarmTimeDate.f.mday = RtccResetTimeDate.f.mday;
    RtccAlarmTimeDate.f.mon = RtccResetTimeDate.f.mon;
    RtccAlarmTimeDate.f.year = RtccResetTimeDate.f.year;
    RtccAlarmTimeDate.f.wday = RtccResetTimeDate.f.wday;

    RtccWriteTimeDate(&RtccResetTimeDate, 1);             //write time for clock
    RtccSetAlarmRpt(RTCC_RPT_TEN_SEC,1);
    RtccSetAlarmRptCount(0,1);                                        //alarm do not repeat
    RtccWriteAlrmTimeDate(&RtccAlarmTimeDate);       //write time for alarm

    mRtccOn();                                                                    //enable rtcc
    mRtccAlrmEnable();                                                      //enable alarm
}
And that's how I test it:

Code:
while(1)
{
        if (PIR3bits.RTCCIF == 1)
        {
            PIR3bits.RTCCIF = 0;
            LED2 = 1;
        }
}
 
Top