void DrawSimpleIdleScreen(void) { unsigned char msd; unsigned char lsd; unsigned char Row = 6; unsigned char Col = 0; int Minutes; /* display hour */ int Hour = GetRTCHOUR(); if (Hour < 0 || Hour > 23) { Hour = 0; } /* if required convert to twelve hour format */ if ( GetTimeFormat() == TWELVE_HOUR ) { if ( Hour == 0 ) { Hour = 12; } else if ( Hour > 12 ) { Hour -= 12; } } msd = Hour / 10; lsd = Hour % 10; /* if first digit is zero then leave location blank */ if ( msd != 0 ) { WriteTimeDigit(msd, Row, Col, LEFT_JUSTIFIED); } Col += 1; WriteTimeDigit(lsd, Row, Col, RIGHT_JUSTIFIED); Col += 2; /* the colon takes the first 5 bits on the byte*/ WriteTimeColon(Row,Col,RIGHT_JUSTIFIED); Col += 1; /* display minutes */ Minutes = GetRTCMIN(); if (Minutes < 0 || Minutes > 59) { Minutes = 0; } msd = Minutes / 10; lsd = Minutes % 10; WriteTimeDigit(msd, Row, Col, RIGHT_JUSTIFIED); Col += 2; WriteTimeDigit(lsd, Row, Col, LEFT_JUSTIFIED); if ( nvDisplaySeconds ) { /* the final colon's spacing isn't quite the same */ int Seconds = GetRTCSEC(); msd = Seconds / 10; lsd = Seconds % 10; Col +=2; WriteTimeColon(Row,Col,LEFT_JUSTIFIED); Col += 1; WriteTimeDigit(msd,Row,Col,LEFT_JUSTIFIED); Col += 1; WriteTimeDigit(lsd,Row,Col,RIGHT_JUSTIFIED); } else { DisplayAmPm(); DisplayDayOfWeek(); DisplayDate(); } }
void DrawIdleScreen(void) { unsigned char msd; unsigned char lsd; unsigned char Row = 6; unsigned char Col = 0; int Minutes; /* display hour */ int Hour = GetRTCHOUR(); /* if required convert to twelve hour format */ if ( GetTimeFormat() == TWELVE_HOUR ) { if ( Hour == 0 ) { Hour = 12; } else if ( Hour > 12 ) { Hour -= 12; } } msd = Hour / 10; lsd = Hour % 10; /* if first digit is zero then leave location blank */ if ( msd != 0 ) { WriteTimeDigit(msd,Row,Col,LEFT_JUSTIFIED); } Col += 1; WriteTimeDigit(lsd,Row,Col,RIGHT_JUSTIFIED); Col += 2; /* the colon takes the first 5 bits on the byte*/ WriteTimeColon(Row,Col,RIGHT_JUSTIFIED); Col+=1; /* display minutes */ Minutes = GetRTCMIN(); msd = Minutes / 10; lsd = Minutes % 10; WriteTimeDigit(msd,Row,Col,RIGHT_JUSTIFIED); Col += 2; WriteTimeDigit(lsd,Row,Col,LEFT_JUSTIFIED); if ( nvDisplaySeconds ) { /* the final colon's spacing isn't quite the same */ int Seconds = GetRTCSEC(); msd = Seconds / 10; lsd = Seconds % 10; Col +=2; WriteTimeColon(Row,Col,LEFT_JUSTIFIED); Col += 1; WriteTimeDigit(msd,Row,Col,LEFT_JUSTIFIED); Col += 1; WriteTimeDigit(lsd,Row,Col,RIGHT_JUSTIFIED); } else /* now things starting getting fun....*/ { DisplayAmPm(); if ( QueryBluetoothOn() == 0 ) { CopyColumnsIntoMyBuffer(pBluetoothOffIdlePageIcon, IDLE_PAGE_ICON_STARTING_ROW, IDLE_PAGE_ICON_SIZE_IN_ROWS, IDLE_PAGE_ICON_STARTING_COL, IDLE_PAGE_ICON_SIZE_IN_COLS); } else if ( QueryPhoneConnected() == 0 ) { CopyColumnsIntoMyBuffer(pPhoneDisconnectedIdlePageIcon, IDLE_PAGE_ICON_STARTING_ROW, IDLE_PAGE_ICON_SIZE_IN_ROWS, IDLE_PAGE_ICON_STARTING_COL, IDLE_PAGE_ICON_SIZE_IN_COLS); } else { if ( QueryBatteryCharging() ) { CopyColumnsIntoMyBuffer(pBatteryChargingIdlePageIconType2, IDLE_PAGE_ICON2_STARTING_ROW, IDLE_PAGE_ICON2_SIZE_IN_ROWS, IDLE_PAGE_ICON2_STARTING_COL, IDLE_PAGE_ICON2_SIZE_IN_COLS); } else { unsigned int bV = 3500; if ( bV < 3500 ) { CopyColumnsIntoMyBuffer(pLowBatteryIdlePageIconType2, IDLE_PAGE_ICON2_STARTING_ROW, IDLE_PAGE_ICON2_SIZE_IN_ROWS, IDLE_PAGE_ICON2_STARTING_COL, IDLE_PAGE_ICON2_SIZE_IN_COLS); } else { DisplayDayOfWeek(); DisplayDate(); } } } } }
/** * @brief RTC Application runs in while loop * @param None * @retval : None */ void RTC_Application(void) { uint8_t ReturnValue; CalculateTime(); if(TimeDateDisplay==0) { DisplayTime(); } if(DisplayDateFlag==1 && TimeDateDisplay==0) { DisplayDate(); DisplayDateFlag=0; } if(AlarmStatus==1) { DisplayAlarm(); GPIO_SetBits(GPIOC, GPIO_Pin_6); Dummy=RTC_GetCounter(); AlarmStatus=2; } if(((RTC_GetCounter()-Dummy) == 4) && (AlarmStatus==2)) { GPIO_ResetBits(GPIOC, GPIO_Pin_6); SelIntExtOnOffConfig(ENABLE); RightLeftIntExtOnOffConfig(ENABLE); UpDownIntOnOffConfig(ENABLE); MenuInit(); Dummy=0; AlarmStatus = 0; } if(TamperEvent == 1) /* Tamper event is detected */ { TamperNumber = TamperNumber + 1; BKP_WriteBackupRegister(BKP_DR5,TamperNumber); BKP_WriteBackupRegister(BKP_DR1, CONFIGURATION_DONE); BKP_WriteBackupRegister(BKP_DR2,s_DateStructVar.Month); BKP_WriteBackupRegister(BKP_DR3,s_DateStructVar.Day); BKP_WriteBackupRegister(BKP_DR4,s_DateStructVar.Year); BKP_WriteBackupRegister(BKP_DR9,s_AlarmDateStructVar.Day); BKP_WriteBackupRegister(BKP_DR8,s_AlarmDateStructVar.Month); BKP_WriteBackupRegister(BKP_DR10,s_AlarmDateStructVar.Year); BKP_WriteBackupRegister(BKP_DR6,ClockSource); BKP_WriteBackupRegister(BKP_DR7,SummerTimeCorrect); ReturnValue=EE_WriteVariable(TamperNumber); if(ReturnValue==PAGE_FULL) { ReturnValue=EE_WriteVariable(TamperNumber); } ReturnValue=EE_WriteVariable(s_DateStructVar.Day); ReturnValue=EE_WriteVariable(s_DateStructVar.Month); ReturnValue=EE_WriteVariable((s_DateStructVar.Year)/100); ReturnValue=EE_WriteVariable((s_DateStructVar.Year)%100); ReturnValue=EE_WriteVariable((s_TimeStructVar.HourHigh*10)+\ s_TimeStructVar.HourLow); ReturnValue=EE_WriteVariable((s_TimeStructVar.MinHigh*10)+\ s_TimeStructVar.MinLow); ReturnValue=EE_WriteVariable((s_TimeStructVar.SecHigh*10)+\ s_TimeStructVar.SecLow); while(!(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13))) { } TamperEvent=0; BKP_TamperPinCmd(ENABLE); } if(BatteryRemoved != 0) /* Battery tamper is detected */ { TamperNumber = TamperNumber + 1; BKP_WriteBackupRegister(BKP_DR5,TamperNumber); ReturnValue=EE_WriteVariable(TamperNumber); if(ReturnValue==PAGE_FULL) { ReturnValue=EE_WriteVariable(TamperNumber); } ReturnValue=EE_WriteVariable(s_DateStructVar.Day); ReturnValue=EE_WriteVariable(s_DateStructVar.Month); ReturnValue=EE_WriteVariable((s_DateStructVar.Year)/100); ReturnValue=EE_WriteVariable((s_DateStructVar.Year)%100); ReturnValue=EE_WriteVariable((s_TimeStructVar.HourHigh*10)\ +s_TimeStructVar.HourLow); ReturnValue=EE_WriteVariable((s_TimeStructVar.MinHigh*10)\ +s_TimeStructVar.MinLow); if(BatteryRemoved==1) { ReturnValue=EE_WriteVariable(BATTERY_REMOVED); BatteryRemoved=0; } else if(BatteryRemoved==2) { ReturnValue=EE_WriteVariable(BATTERY_RESTORED); BatteryRemoved=0; } BKP_TamperPinCmd(ENABLE); } }