rtccsetalarmrpt.c

来自「Mplab C30编译器」· C语言 代码 · 共 56 行

C
56
字号
#if defined(__dsPIC33F__)
#include <p33Fxxxx.h>
#elif defined(__PIC24H__)
#include "p24hxxxx.h"
#endif

#include "Rtcc.h"

#ifdef _TMR_RTCC_V1

/*********************************************************************
 * Function:        void RtccSetAlarmRpt(rtccRepeat rpt, BOOL dsblAlrm)
 *
 * PreCondition:    rpt has to be a proper rtccRepeat enumeration value 
 * Input:           rpt         - value of the desired alarm repeat rate 
 *                  dsblAlrm    - if TRUE, the API can temporarily disable
 *                                the alarm when changing the RPT value 
 * Output:          None
 * Side Effects:    None
 * Overview:        The function sets the RTCC alarm repeat count.
 * Note:            If alarm is enabled, changing the repeat count can be safely made
 *                  only when the sync pulse is unasserted. To avoid waiting for the sync
 *                  pulse, the user can choose to temporarily disable the alarm and then
 *                  re-enable it. This means that the user has the knowledge that an alarm
 *                  event is not imminent.
 ********************************************************************/
void RtccSetAlarmRpt(rtccRepeat rpt, BOOL dsblAlrm)
{
   BOOL    isAlrm=mRtccIsAlrmEnabled();

   if(isAlrm)
   {
       if(dsblAlrm)
       {
           mRtccAlrmDisable();
       }
       else
       {
           mRtccWaitSync();
       }
   }

   // update the repeat rate
   ALCFGRPTbits.AMASK=rpt;
       
   // restore previous status
   if(isAlrm && dsblAlrm)
   {
       mRtccAlrmEnable();
   }
}

#else
#warning "Does not build on this target"
#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?