Exemplo n.º 1
0
/**
 * @brief  设置RTC的时间
 * @param  datetime  :时间戳结构
 * @retval None
 */
void RTC_SetDateTime(RTC_DateTime_Type * datetime)
{
    uint32_t i;
    if(!datetime)
    {
        return;
    }
    RTC_DateTimeToSecond(datetime, &i);
    LIB_TRACE("Reconfig:%d  %s\r\n", i, __func__);
    RTC->SR &= ~RTC_SR_TCE_MASK;
    RTC->TSR = RTC_TSR_TSR(i);
    RTC->SR |= RTC_SR_TCE_MASK;
}
Exemplo n.º 2
0
/* ===================================================================*/
LDD_TDeviceData * RTC1_Init(LDD_TUserData *UserDataPtr, bool SoftInit)
{
  RTC1_TDeviceData *DevDataPtr;

  /* Allocate RTC device structure */
  /* {Default RTOS Adapter} Driver memory allocation: Dynamic allocation is simulated by a pointer to the static object */
  DevDataPtr = &DevDataPtr__DEFAULT_RTOS_ALLOC;
  DevDataPtr->UserDataPtr = UserDataPtr; /* Store the user data */
  /* Allocate interrupt vector(s) */
  /* {Default RTOS Adapter} Set interrupt vector: IVT is static, ISR parameter is passed by the global variable */
  INT_RTC__DEFAULT_RTOS_ISRPARAM = DevDataPtr;
  /* Registration of the device structure */
  PE_LDD_RegisterDeviceStructure(PE_LDD_COMPONENT_RTC1_ID,DevDataPtr);
  /* Enable module clock */
  /* SIM_SCGC6: RTC=1 */
  SIM_SCGC6 |= SIM_SCGC6_RTC_MASK;
  if (!SoftInit) {
    RTC_SR = 0x00U;                    /* Disable counter */
    RTC_TPR = RTC_TPR_TPR(0x00);       /* Set prescaler register */
    RTC_TSR = RTC_TSR_TSR(0x02);       /* Set second register - 2000-01-01 0:0:1 */
    RTC_TAR = RTC_TAR_TAR(0x00);       /* Set alarm register - 2000-01-01 0:0:0 */
    RTC_TCR = RTC_TCR_CIC(0x00) |
              RTC_TCR_TCV(0x00) |
              RTC_TCR_CIR(0x00) |
              RTC_TCR_TCR(0x00);       /* Set compensation */
    RTC_SR = RTC_SR_TCE_MASK;          /* Enable counter */
  }
  /* Enable interrupt */
  /* RTC_IER: TAIE=1,TOIE=0,TIIE=0 */
  RTC_IER = RTC_IER_TAIE_MASK;         /* Enable interrupts */
  /* NVICIP46: PRI46=0x70 */
  NVICIP46 = NVIC_IP_PRI46(0x70);
  /* NVICISER1: SETENA|=0x4000 */
  NVICISER1 |= NVIC_ISER_SETENA(0x4000);
  return DevDataPtr;
}
Exemplo n.º 3
0
void RTC_SetTSR(uint32_t val)
{
    RTC->SR &= ~RTC_SR_TCE_MASK;
    RTC->TSR = RTC_TSR_TSR(val);
    RTC->SR |= RTC_SR_TCE_MASK;  
}