;-------------------------------------------------------- ; File Created by SDCC : free open source ISO C Compiler ; Version 4.5.0 #15242 (Linux) ;-------------------------------------------------------- .module stm8l15x_rtc ;-------------------------------------------------------- ; Public variables in this module ;-------------------------------------------------------- .globl _RTC_DeInit .globl _RTC_Init .globl _RTC_StructInit .globl _RTC_WriteProtectionCmd .globl _RTC_EnterInitMode .globl _RTC_ExitInitMode .globl _RTC_WaitForSynchro .globl _RTC_RatioCmd .globl _RTC_BypassShadowCmd .globl _RTC_SetTime .globl _RTC_TimeStructInit .globl _RTC_GetTime .globl _RTC_GetSubSecond .globl _RTC_SetDate .globl _RTC_DateStructInit .globl _RTC_GetDate .globl _RTC_SetAlarm .globl _RTC_AlarmStructInit .globl _RTC_GetAlarm .globl _RTC_AlarmCmd .globl _RTC_AlarmSubSecondConfig .globl _RTC_WakeUpClockConfig .globl _RTC_SetWakeUpCounter .globl _RTC_GetWakeUpCounter .globl _RTC_WakeUpCmd .globl _RTC_DayLightSavingConfig .globl _RTC_GetStoreOperation .globl _RTC_OutputConfig .globl _RTC_SynchroShiftConfig .globl _RTC_SmoothCalibConfig .globl _RTC_CalibOutputConfig .globl _RTC_CalibOutputCmd .globl _RTC_TamperLevelConfig .globl _RTC_TamperFilterConfig .globl _RTC_TamperSamplingFreqConfig .globl _RTC_TamperPinsPrechargeDuration .globl _RTC_TamperCmd .globl _RTC_ITConfig .globl _RTC_GetFlagStatus .globl _RTC_ClearFlag .globl _RTC_GetITStatus .globl _RTC_ClearITPendingBit ;-------------------------------------------------------- ; ram data ;-------------------------------------------------------- .area DATA ;-------------------------------------------------------- ; ram data ;-------------------------------------------------------- .area INITIALIZED ;-------------------------------------------------------- ; absolute external ram data ;-------------------------------------------------------- .area DABS (ABS) ; default segment ordering for linker .area HOME .area GSINIT .area GSFINAL .area CONST .area INITIALIZER .area CODE ;-------------------------------------------------------- ; global & static initialisations ;-------------------------------------------------------- .area HOME .area GSINIT .area GSFINAL .area GSINIT ;-------------------------------------------------------- ; Home ;-------------------------------------------------------- .area HOME .area HOME ;-------------------------------------------------------- ; code ;-------------------------------------------------------- .area CODE ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 232: ErrorStatus RTC_DeInit(void) ; ----------------------------------------- ; function RTC_DeInit ; ----------------------------------------- _RTC_DeInit: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 239: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 240: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 243: if (RTC_EnterInitMode() == ERROR) call _RTC_EnterInitMode tnz a jrne 00121$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 245: status = ERROR; clr a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 247: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ret 00121$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 252: RTC->TR1 = RTC_TR1_RESET_VALUE; mov 0x5140+0, #0x00 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 253: RTC->TR2 = RTC_TR2_RESET_VALUE; mov 0x5141+0, #0x00 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 254: RTC->TR3 = RTC_TR3_RESET_VALUE; mov 0x5142+0, #0x00 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 257: RTC->DR1 = RTC_DR1_RESET_VALUE; mov 0x5144+0, #0x01 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 258: RTC->DR2 = RTC_DR2_RESET_VALUE; mov 0x5145+0, #0x21 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 259: RTC->DR3 = RTC_DR3_RESET_VALUE; mov 0x5146+0, #0x00 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 262: RTC->SPRERH = RTC_SPRERH_RESET_VALUE; mov 0x5150+0, #0x00 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 263: RTC->SPRERL = RTC_SPRERL_RESET_VALUE; mov 0x5151+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 264: RTC->APRER = RTC_APRER_RESET_VALUE; mov 0x5152+0, #0x7f ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 266: RTC->TCR1 = RTC_TCR1_RESET_VALUE; mov 0x516c+0, #0x00 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 267: RTC->TCR2 = RTC_TCR2_RESET_VALUE; mov 0x516d+0, #0x00 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 271: RTC->CR1 = RTC_CR1_RESET_VALUE; mov 0x5148+0, #0x00 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 272: RTC->CR2 = RTC_CR2_RESET_VALUE; mov 0x5149+0, #0x00 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 273: RTC->CR3 = RTC_CR3_RESET_VALUE; mov 0x514a+0, #0x00 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 276: while (((RTC->ISR1 & RTC_ISR1_WUTWF) == RESET) && ( wutwfcount != WUTWF_TIMEOUT)) clrw x 00102$: btjt 0x514c, #2, 00104$ cpw x, #0xffff jreq 00104$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 278: wutwfcount++; incw x ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 279: RTC->ISR1 = 0; mov 0x514c+0, #0x00 jra 00102$ 00104$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 282: if ((RTC->ISR1 & RTC_ISR1_WUTWF) == RESET) btjt 0x514c, #2, 00118$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 284: status = ERROR; clr a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 286: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ret 00118$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 291: RTC->CR1 = RTC_CR1_RESET_VALUE; mov 0x5148+0, #0x00 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 294: RTC->WUTRH = RTC_WUTRH_RESET_VALUE; mov 0x5154+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 295: RTC->WUTRL = RTC_WUTRL_RESET_VALUE; mov 0x5155+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 298: RTC->ALRMAR1 = RTC_ALRMAR1_RESET_VALUE; mov 0x515c+0, #0x00 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 299: RTC->ALRMAR2 = RTC_ALRMAR2_RESET_VALUE; mov 0x515d+0, #0x00 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 300: RTC->ALRMAR3 = RTC_ALRMAR3_RESET_VALUE; mov 0x515e+0, #0x00 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 301: RTC->ALRMAR4 = RTC_ALRMAR4_RESET_VALUE; mov 0x515f+0, #0x00 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 303: RTC->ALRMASSRH = RTC_ALRMASSRH_RESET_VALUE; mov 0x5164+0, #0x00 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 304: RTC->ALRMASSRL = RTC_ALRMASSRL_RESET_VALUE; mov 0x5165+0, #0x00 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 305: RTC->ALRMASSMSKR = RTC_ALRMASSMSKR_RESET_VALUE; mov 0x5166+0, #0x00 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 308: RTC->ISR1 = (uint8_t)0x00; mov 0x514c+0, #0x00 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 309: RTC->ISR2 = RTC_ISR2_RESET_VALUE; mov 0x514d+0, #0x00 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 311: if ((RTC->ISR1 & RTC_ISR1_RECALPF) != RESET) btjf 0x514c, #1, 00110$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 313: while (((RTC->ISR1 & RTC_ISR1_RECALPF) != RESET) && (recalpfcount != RECALPF_TIMEOUT)) clrw x 00106$: btjf 0x514c, #1, 00110$ cpw x, #0xffff jreq 00110$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 315: recalpfcount++; incw x jra 00106$ 00110$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 318: if ((RTC->ISR1 & RTC_ISR1_RECALPF) == RESET) btjt 0x514c, #1, 00115$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 320: RTC->CALRH = RTC_CALRH_RESET_VALUE; mov 0x516a+0, #0x00 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 321: RTC->CALRL = RTC_CALRL_RESET_VALUE; mov 0x516b+0, #0x00 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 323: if (RTC_WaitForSynchro() == ERROR) call _RTC_WaitForSynchro tnz a jrne 00112$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 325: status = ERROR; clr a jra 00116$ 00112$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 329: status = SUCCESS; ld a, #0x01 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 334: status = ERROR; .byte 0x21 00115$: clr a 00116$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 338: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 343: return (ErrorStatus)status; ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 344: } ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 359: ErrorStatus RTC_Init(RTC_InitTypeDef* RTC_InitStruct) ; ----------------------------------------- ; function RTC_Init ; ----------------------------------------- _RTC_Init: sub sp, #3 ldw (0x02, sp), x ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 369: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 370: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 373: if (RTC_EnterInitMode() == ERROR) call _RTC_EnterInitMode tnz a jrne 00102$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 375: status = ERROR; clr a jra 00103$ 00102$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 380: RTC->CR1 &= ((uint8_t)~( RTC_CR1_FMT )); bres 0x5148, #6 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 383: RTC->CR1 |= ((uint8_t)(RTC_InitStruct->RTC_HourFormat)); ld a, 0x5148 ld (0x01, sp), a ldw x, (0x02, sp) ld a, (x) or a, (0x01, sp) ld 0x5148, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 386: RTC->SPRERH = (uint8_t)(RTC_InitStruct->RTC_SynchPrediv >> 8); ldw x, (0x02, sp) incw x incw x ld a, (0x1, x) ld a, (x) ld 0x5150, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 387: RTC->SPRERL = (uint8_t)(RTC_InitStruct->RTC_SynchPrediv); ld a, (0x1, x) ld 0x5151, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 388: RTC->APRER = (uint8_t)(RTC_InitStruct->RTC_AsynchPrediv); ldw x, (0x02, sp) ld a, (0x1, x) ld 0x5152, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 391: RTC->ISR1 &= (uint8_t)~RTC_ISR1_INIT; bres 0x514c, #7 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 393: status = SUCCESS; ld a, #0x01 00103$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 397: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 400: return (ErrorStatus)(status); ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 401: } addw sp, #3 ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 410: void RTC_StructInit(RTC_InitTypeDef* RTC_InitStruct) ; ----------------------------------------- ; function RTC_StructInit ; ----------------------------------------- _RTC_StructInit: exgw x, y ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 413: RTC_InitStruct->RTC_HourFormat = RTC_HourFormat_24; clr (y) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 416: RTC_InitStruct->RTC_AsynchPrediv = RTC_APRER_RESET_VALUE; ldw x, y incw x ld a, #0x7f ld (x), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 419: RTC_InitStruct->RTC_SynchPrediv = RTC_SPRERL_RESET_VALUE; ldw x, y ldw y, #0x00ff ldw (0x02, x), y ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 420: } ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 430: void RTC_WriteProtectionCmd(FunctionalState NewState) ; ----------------------------------------- ; function RTC_WriteProtectionCmd ; ----------------------------------------- _RTC_WriteProtectionCmd: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 435: if (NewState != DISABLE) tnz a jreq 00102$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 438: RTC->WPR = RTC_WPR_EnableKey; mov 0x5159+0, #0xff ret 00102$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 443: RTC->WPR = RTC_WPR_DisableKey1; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 444: RTC->WPR = RTC_WPR_DisableKey2; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 446: } ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 458: ErrorStatus RTC_EnterInitMode(void) ; ----------------------------------------- ; function RTC_EnterInitMode ; ----------------------------------------- _RTC_EnterInitMode: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 464: if ((RTC->ISR1 & RTC_ISR1_INITF) == RESET) btjt 0x514c, #6, 00106$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 467: RTC->ISR1 = (uint8_t)RTC_ISR1_INIT; mov 0x514c+0, #0x80 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 470: while (((RTC->ISR1 & RTC_ISR1_INITF) == RESET) && ( initfcount != INITF_TIMEOUT)) clrw x 00102$: btjt 0x514c, #6, 00106$ cpw x, #0xffff jreq 00106$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 472: initfcount++; incw x jra 00102$ 00106$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 476: if ((RTC->ISR1 & RTC_ISR1_INITF) == RESET) btjt 0x514c, #6, 00108$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 478: status = ERROR; clr a ret 00108$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 482: status = SUCCESS; ld a, #0x01 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 485: return (ErrorStatus)status; ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 486: } ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 498: void RTC_ExitInitMode(void) ; ----------------------------------------- ; function RTC_ExitInitMode ; ----------------------------------------- _RTC_ExitInitMode: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 501: RTC->ISR1 &= (uint8_t)~RTC_ISR1_INIT; bres 0x514c, #7 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 502: } ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 527: ErrorStatus RTC_WaitForSynchro(void) ; ----------------------------------------- ; function RTC_WaitForSynchro ; ----------------------------------------- _RTC_WaitForSynchro: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 533: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 534: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 537: RTC->ISR1 &= (uint8_t)~(RTC_ISR1_RSF | RTC_ISR1_INIT); ld a, 0x514c and a, #0x5f ld 0x514c, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 540: while (((RTC->ISR1 & RTC_ISR1_RSF) == RESET) && ( rsfcount != RSF_TIMEOUT)) clrw x 00102$: btjt 0x514c, #5, 00104$ cpw x, #0xffff jreq 00104$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 542: rsfcount++; incw x jra 00102$ 00104$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 546: if ((RTC->ISR1 & RTC_ISR1_RSF) != RESET) btjf 0x514c, #5, 00106$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 548: status = SUCCESS; ld a, #0x01 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 552: status = ERROR; .byte 0x21 00106$: clr a 00107$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 556: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 558: return (ErrorStatus)status; ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 559: } ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 568: void RTC_RatioCmd(FunctionalState NewState) ; ----------------------------------------- ; function RTC_RatioCmd ; ----------------------------------------- _RTC_RatioCmd: push a ld (0x01, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 574: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 575: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 580: RTC->CR1 |= (uint8_t)RTC_CR1_RATIO; ld a, 0x5148 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 577: if (NewState != DISABLE) tnz (0x01, sp) jreq 00102$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 580: RTC->CR1 |= (uint8_t)RTC_CR1_RATIO; or a, #0x20 ld 0x5148, a jra 00103$ 00102$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 585: RTC->CR1 &= (uint8_t)~RTC_CR1_RATIO; and a, #0xdf ld 0x5148, a 00103$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 589: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 590: } pop a ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 598: void RTC_BypassShadowCmd(FunctionalState NewState) ; ----------------------------------------- ; function RTC_BypassShadowCmd ; ----------------------------------------- _RTC_BypassShadowCmd: push a ld (0x01, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 604: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 605: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 610: RTC->CR1 |= (uint8_t)RTC_CR1_BYPSHAD; ld a, 0x5148 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 607: if (NewState != DISABLE) tnz (0x01, sp) jreq 00102$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 610: RTC->CR1 |= (uint8_t)RTC_CR1_BYPSHAD; or a, #0x10 ld 0x5148, a jra 00103$ 00102$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 615: RTC->CR1 &= (uint8_t)~RTC_CR1_BYPSHAD; and a, #0xef ld 0x5148, a 00103$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 619: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 620: } pop a ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 659: ErrorStatus RTC_SetTime(RTC_Format_TypeDef RTC_Format, ; ----------------------------------------- ; function RTC_SetTime ; ----------------------------------------- _RTC_SetTime: sub sp, #6 ld (0x06, sp), a ldw (0x04, sp), x ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 671: if ((RTC->CR1 & RTC_CR1_FMT) != RESET) ld a, 0x5148 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 701: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 702: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 705: if (RTC_EnterInitMode() == ERROR) call _RTC_EnterInitMode tnz a jrne 00123$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 707: status = ERROR; clr a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 709: RTC->WPR = 0xFF; mov 0x5159+0, #0xff jra 00124$ 00123$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 714: if ((RTC->CR1 & RTC_CR1_FMT) != RESET) btjf 0x5148, #6, 00111$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 717: temp = RTC_TimeStruct->RTC_H12; ldw x, (0x04, sp) ld a, (0x3, x) ld (0x01, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 721: temp = 0; .byte 0xc5 00111$: clr (0x01, sp) 00112$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 726: RTC->TR1 = (uint8_t)(RTC_TimeStruct->RTC_Seconds); ldw y, (0x04, sp) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 727: RTC->TR2 = (uint8_t)(RTC_TimeStruct->RTC_Minutes) ; ldw x, (0x04, sp) incw x ldw (0x02, sp), x ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 728: RTC->TR3 = (uint8_t)( temp | RTC_TimeStruct->RTC_Hours) ; ldw x, (0x04, sp) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 726: RTC->TR1 = (uint8_t)(RTC_TimeStruct->RTC_Seconds); ld a, (0x2, y) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 724: if (RTC_Format != RTC_Format_BIN) tnz (0x06, sp) jreq 00114$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 726: RTC->TR1 = (uint8_t)(RTC_TimeStruct->RTC_Seconds); ld 0x5140, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 727: RTC->TR2 = (uint8_t)(RTC_TimeStruct->RTC_Minutes) ; ldw y, (0x02, sp) ld a, (y) ld 0x5141, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 728: RTC->TR3 = (uint8_t)( temp | RTC_TimeStruct->RTC_Hours) ; ld a, (x) or a, (0x01, sp) ld 0x5142, a jra 00115$ 00114$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 732: RTC->TR1 = (uint8_t)(ByteToBcd2(RTC_TimeStruct->RTC_Seconds)); pushw x call _ByteToBcd2 popw x ld 0x5140, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 733: RTC->TR2 = (uint8_t)(ByteToBcd2(RTC_TimeStruct->RTC_Minutes)) ; ldw y, (0x02, sp) ld a, (y) pushw x call _ByteToBcd2 popw x ld 0x5141, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 734: RTC->TR3 = (uint8_t)( temp | ByteToBcd2(RTC_TimeStruct->RTC_Hours)); ld a, (x) call _ByteToBcd2 or a, (0x01, sp) ld 0x5142, a 00115$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 737: (void)(RTC->DR3); ld a, 0x5146 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 740: RTC->ISR1 &= (uint8_t)~RTC_ISR1_INIT; bres 0x514c, #7 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 743: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 746: if ((RTC->CR1 & RTC_CR1_BYPSHAD) == RESET) btjt 0x5148, #4, 00120$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 748: if (RTC_WaitForSynchro() == ERROR) call _RTC_WaitForSynchro tnz a jrne 00117$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 750: status = ERROR; clr a jra 00124$ 00117$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 754: status = SUCCESS; ld a, #0x01 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 759: status = SUCCESS; .byte 0xc5 00120$: ld a, #0x01 00124$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 763: return (ErrorStatus)status; ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 764: } addw sp, #6 ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 775: void RTC_TimeStructInit(RTC_TimeTypeDef* RTC_TimeStruct) ; ----------------------------------------- ; function RTC_TimeStructInit ; ----------------------------------------- _RTC_TimeStructInit: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 778: RTC_TimeStruct->RTC_H12 = RTC_H12_AM; ldw y, x clr (0x0003, x) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 779: RTC_TimeStruct->RTC_Hours = 0; clr (y) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 780: RTC_TimeStruct->RTC_Minutes = 0; ldw x, y clr (0x01, x) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 781: RTC_TimeStruct->RTC_Seconds = 0; ldw x, y clr (0x02, x) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 782: } ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 798: void RTC_GetTime(RTC_Format_TypeDef RTC_Format, ; ----------------------------------------- ; function RTC_GetTime ; ----------------------------------------- _RTC_GetTime: sub sp, #6 ld (0x06, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 808: RTC_TimeStruct->RTC_Seconds = RTC->TR1; ldw y, x incw x incw x ldw (0x01, sp), x ld a, 0x5140 ldw x, (0x01, sp) ld (x), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 811: RTC_TimeStruct->RTC_Minutes = RTC->TR2; ldw x, y incw x ldw (0x03, sp), x ld a, 0x5141 ldw x, (0x03, sp) ld (x), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 814: tmpreg = (uint8_t)RTC->TR3; ld a, 0x5142 ld (0x05, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 817: (void) (RTC->DR3) ; ld a, 0x5146 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 821: RTC_TimeStruct->RTC_Hours = (uint8_t)(tmpreg & (uint8_t)~(RTC_TR3_PM)); ldw x, y ld a, (0x05, sp) and a, #0xbf ld (x), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 824: RTC_TimeStruct->RTC_H12 = (RTC_H12_TypeDef)(tmpreg & RTC_TR3_PM); addw y, #0x0003 ld a, (0x05, sp) and a, #0x40 ld (y), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 827: if (RTC_Format == RTC_Format_BIN) tnz (0x06, sp) jrne 00103$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 830: RTC_TimeStruct->RTC_Hours = (uint8_t)Bcd2ToByte(RTC_TimeStruct->RTC_Hours); ld a, (x) pushw x call _Bcd2ToByte popw x ld (x), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 831: RTC_TimeStruct->RTC_Minutes = (uint8_t)Bcd2ToByte(RTC_TimeStruct->RTC_Minutes); ldw x, (0x03, sp) ld a, (x) call _Bcd2ToByte ldw x, (0x03, sp) ld (x), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 832: RTC_TimeStruct->RTC_Seconds = (uint8_t)Bcd2ToByte(RTC_TimeStruct->RTC_Seconds); ldw x, (0x01, sp) ld a, (x) call _Bcd2ToByte ldw x, (0x01, sp) ld (x), a 00103$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 834: } addw sp, #6 ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 845: uint16_t RTC_GetSubSecond(void) ; ----------------------------------------- ; function RTC_GetSubSecond ; ----------------------------------------- _RTC_GetSubSecond: pushw x ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 851: ssrhreg = RTC->SSRH; ld a, 0x5157 ld xh, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 852: ssrlreg = RTC->SSRL; ld a, 0x5158 ld xl, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 855: (void) (RTC->DR3); ld a, 0x5146 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 858: ssrreg = (uint16_t)((uint16_t)((uint16_t)ssrhreg << 8) | (uint16_t)(ssrlreg)); clr (0x02, sp) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 859: return (uint16_t)(ssrreg); ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 860: } addw sp, #2 ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 876: ErrorStatus RTC_SetDate(RTC_Format_TypeDef RTC_Format, ; ----------------------------------------- ; function RTC_SetDate ; ----------------------------------------- _RTC_SetDate: sub sp, #10 ld (0x0a, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 881: if ((RTC_Format == RTC_Format_BIN) && ((RTC_DateStruct->RTC_Month & TEN_VALUE_BCD) == TEN_VALUE_BCD)) ldw (0x08, sp), x incw x ldw (0x01, sp), x tnz (0x0a, sp) jrne 00106$ ldw x, (0x01, sp) ld a, (x) ld xl, a cpl a bcp a, #0x10 jrne 00106$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 883: RTC_DateStruct->RTC_Month = (RTC_Month_TypeDef)((RTC_DateStruct->RTC_Month & (uint8_t)~(TEN_VALUE_BCD)) + TEN_VALUE_BIN); ld a, xl and a, #0xef add a, #0x0a ldw x, (0x01, sp) ld (x), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 902: assert_param(IS_RTC_DATE_MAX(Bcd2ToByte((uint8_t)RTC_DateStruct->RTC_Date))); 00106$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 907: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 908: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 911: if (RTC_EnterInitMode() == ERROR) call _RTC_EnterInitMode tnz a jrne 00117$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 913: status = ERROR; clr a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 915: RTC->WPR = 0xFF; mov 0x5159+0, #0xff jra 00118$ 00117$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 919: (void)(RTC->TR1); ld a, 0x5140 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 924: RTC->DR1 = (uint8_t)(RTC_DateStruct->RTC_Date); ldw x, (0x08, sp) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 925: RTC->DR2 = (uint8_t)((RTC_DateStruct->RTC_Month) | (uint8_t)((RTC_DateStruct->RTC_WeekDay) << 5)); ldw y, (0x08, sp) ldw (0x03, sp), y ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 926: RTC->DR3 = (uint8_t)((RTC_DateStruct->RTC_Year)); ldw y, (0x08, sp) addw y, #0x0003 ldw (0x05, sp), y ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 924: RTC->DR1 = (uint8_t)(RTC_DateStruct->RTC_Date); ld a, (0x2, x) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 922: if (RTC_Format != RTC_Format_BIN) tnz (0x0a, sp) jreq 00108$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 924: RTC->DR1 = (uint8_t)(RTC_DateStruct->RTC_Date); ld 0x5144, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 925: RTC->DR2 = (uint8_t)((RTC_DateStruct->RTC_Month) | (uint8_t)((RTC_DateStruct->RTC_WeekDay) << 5)); ldw x, (0x01, sp) ld a, (x) ld (0x07, sp), a ldw x, (0x03, sp) ld a, (x) swap a and a, #0xf0 sll a or a, (0x07, sp) ld 0x5145, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 926: RTC->DR3 = (uint8_t)((RTC_DateStruct->RTC_Year)); ldw x, (0x05, sp) ld a, (x) ld 0x5146, a jra 00109$ 00108$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 930: RTC->DR1 = (uint8_t)(ByteToBcd2 ((uint8_t)RTC_DateStruct->RTC_Date)); call _ByteToBcd2 ld 0x5144, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 931: RTC->DR2 = (uint8_t)((ByteToBcd2((uint8_t)RTC_DateStruct->RTC_Month)) | (uint8_t)((RTC_DateStruct->RTC_WeekDay) << 5)); ldw x, (0x01, sp) ld a, (x) call _ByteToBcd2 ld (0x07, sp), a ldw x, (0x03, sp) ld a, (x) swap a and a, #0xf0 sll a or a, (0x07, sp) ld 0x5145, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 932: RTC->DR3 = (uint8_t)(ByteToBcd2((uint8_t)RTC_DateStruct->RTC_Year)); ldw x, (0x05, sp) ld a, (x) call _ByteToBcd2 ld 0x5146, a 00109$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 936: RTC->ISR1 &= (uint8_t)~RTC_ISR1_INIT; bres 0x514c, #7 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 939: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 942: if ((RTC->CR1 & RTC_CR1_BYPSHAD) == RESET) btjt 0x5148, #4, 00114$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 944: if (RTC_WaitForSynchro() == ERROR) call _RTC_WaitForSynchro tnz a jrne 00111$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 946: status = ERROR; clr a jra 00118$ 00111$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 950: status = SUCCESS; ld a, #0x01 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 955: status = SUCCESS; .byte 0xc5 00114$: ld a, #0x01 00118$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 959: return (ErrorStatus)status; ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 960: } addw sp, #10 ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 968: void RTC_DateStructInit(RTC_DateTypeDef* RTC_DateStruct) ; ----------------------------------------- ; function RTC_DateStructInit ; ----------------------------------------- _RTC_DateStructInit: exgw x, y ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 971: RTC_DateStruct->RTC_WeekDay = RTC_Weekday_Monday; ld a, #0x01 ld (y), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 972: RTC_DateStruct->RTC_Date = 1; ldw x, y incw x incw x ld a, #0x01 ld (x), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 973: RTC_DateStruct->RTC_Month = RTC_Month_January; ldw x, y incw x ld a, #0x01 ld (x), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 974: RTC_DateStruct->RTC_Year = 0; ldw x, y clr (0x0003, x) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 975: } ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 988: void RTC_GetDate(RTC_Format_TypeDef RTC_Format, ; ----------------------------------------- ; function RTC_GetDate ; ----------------------------------------- _RTC_GetDate: sub sp, #6 ld (0x06, sp), a exgw x, y ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 997: (void) (RTC->TR1) ; ld a, 0x5140 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 998: RTC_DateStruct->RTC_Date = (uint8_t)(RTC->DR1); ldw x, y incw x incw x ldw (0x01, sp), x ld a, 0x5144 ldw x, (0x01, sp) ld (x), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 999: tmpreg = (uint8_t)RTC->DR2; ld a, 0x5145 ld (0x03, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1000: RTC_DateStruct->RTC_Year = (uint8_t)(RTC->DR3); ldw x, y addw x, #0x0003 ldw (0x04, sp), x ld a, 0x5146 ldw x, (0x04, sp) ld (x), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1003: RTC_DateStruct->RTC_Month = (RTC_Month_TypeDef)(tmpreg & (uint8_t)(RTC_DR2_MT | RTC_DR2_MU)); ldw x, y incw x ld a, (0x03, sp) and a, #0x1f ld (x), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1004: RTC_DateStruct->RTC_WeekDay = (RTC_Weekday_TypeDef)((uint8_t)((uint8_t)tmpreg & (uint8_t)(RTC_DR2_WDU)) >> (uint8_t)5); ld a, (0x03, sp) and a, #0xe0 swap a and a, #0x0f srl a ld (y), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1007: if (RTC_Format == RTC_Format_BIN) tnz (0x06, sp) jrne 00103$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1010: RTC_DateStruct->RTC_Year = (uint8_t)Bcd2ToByte((uint8_t)RTC_DateStruct->RTC_Year); ldw y, (0x04, sp) ld a, (y) pushw x call _Bcd2ToByte popw x ldw y, (0x04, sp) ld (y), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1011: RTC_DateStruct->RTC_Month = (RTC_Month_TypeDef)Bcd2ToByte((uint8_t)RTC_DateStruct->RTC_Month); ld a, (x) pushw x call _Bcd2ToByte popw x ld (x), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1012: RTC_DateStruct->RTC_Date = (uint8_t)(Bcd2ToByte((uint8_t)RTC_DateStruct->RTC_Date)); ldw x, (0x01, sp) ld a, (x) call _Bcd2ToByte ldw x, (0x01, sp) ld (x), a 00103$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1014: } addw sp, #6 ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1044: void RTC_SetAlarm(RTC_Format_TypeDef RTC_Format, ; ----------------------------------------- ; function RTC_SetAlarm ; ----------------------------------------- _RTC_SetAlarm: sub sp, #17 ld (0x11, sp), a exgw x, y ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1062: if ((RTC->CR1 & RTC_CR1_FMT) != RESET) ld a, 0x5148 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1094: if ((RTC_AlarmStruct->RTC_AlarmMask & RTC_AlarmMask_DateWeekDay) == RESET ) ldw x, y addw x, #0x0004 ldw (0x05, sp), x ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1108: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1109: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1115: tmpreg1 = (uint8_t)((uint8_t)(RTC_AlarmStruct->RTC_AlarmTime.RTC_Seconds) | \ ldw (0x01, sp), y ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1118: tmpreg2 = (uint8_t)((uint8_t)(RTC_AlarmStruct->RTC_AlarmTime.RTC_Minutes) | \ ldw x, y incw x ldw (0x03, sp), x ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1121: tmpreg3 = (uint8_t)((uint8_t)((uint8_t)(RTC_AlarmStruct->RTC_AlarmTime.RTC_Hours) | \ ldw (0x07, sp), y ldw x, y addw x, #0x0003 ldw (0x09, sp), x ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1125: tmpreg4 = (uint8_t)((uint8_t)((uint8_t)(RTC_AlarmStruct->RTC_AlarmDateWeekDay) | \ ldw x, y addw x, #0x0006 ldw (0x0b, sp), x ldw x, y addw x, #0x0005 ldw (0x0d, sp), x ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1115: tmpreg1 = (uint8_t)((uint8_t)(RTC_AlarmStruct->RTC_AlarmTime.RTC_Seconds) | \ ldw x, (0x01, sp) ld a, (0x2, x) ld (0x10, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1113: if (RTC_Format != RTC_Format_BIN) tnz (0x11, sp) jreq 00116$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1115: tmpreg1 = (uint8_t)((uint8_t)(RTC_AlarmStruct->RTC_AlarmTime.RTC_Seconds) | \ ldw x, (0x05, sp) ld a, (x) ld xl, a and a, #0x80 or a, (0x10, sp) ld (0x0f, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1118: tmpreg2 = (uint8_t)((uint8_t)(RTC_AlarmStruct->RTC_AlarmTime.RTC_Minutes) | \ ldw y, (0x03, sp) ld a, (y) ld (0x10, sp), a ld a, xl sll a and a, #0x80 or a, (0x10, sp) ld (0x10, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1121: tmpreg3 = (uint8_t)((uint8_t)((uint8_t)(RTC_AlarmStruct->RTC_AlarmTime.RTC_Hours) | \ ldw y, (0x07, sp) ld a, (y) ld (0x06, sp), a ldw y, (0x09, sp) ld a, (y) or a, (0x06, sp) ld (0x0a, sp), a ld a, xl sll a sll a and a, #0x80 or a, (0x0a, sp) ld (0x0a, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1125: tmpreg4 = (uint8_t)((uint8_t)((uint8_t)(RTC_AlarmStruct->RTC_AlarmDateWeekDay) | \ ldw y, (0x0b, sp) ld a, (y) ld (0x09, sp), a ldw y, (0x0d, sp) ld a, (y) or a, (0x09, sp) ld (0x0e, sp), a ld a, xl sll a sll a sll a and a, #0x80 or a, (0x0e, sp) jra 00117$ 00116$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1132: tmpreg1 = (uint8_t)((ByteToBcd2(RTC_AlarmStruct->RTC_AlarmTime.RTC_Seconds)) | \ ld a, (0x10, sp) call _ByteToBcd2 ld (0x10, sp), a ldw x, (0x05, sp) ld a, (x) and a, #0x80 or a, (0x10, sp) ld (0x0f, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1135: tmpreg2 = (uint8_t)((ByteToBcd2(RTC_AlarmStruct->RTC_AlarmTime.RTC_Minutes)) | \ ldw x, (0x03, sp) ld a, (x) call _ByteToBcd2 ld (0x10, sp), a ldw x, (0x05, sp) ld a, (x) sll a and a, #0x80 or a, (0x10, sp) ld (0x10, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1138: tmpreg3 = (uint8_t)((uint8_t)((ByteToBcd2(RTC_AlarmStruct->RTC_AlarmTime.RTC_Hours)) | \ ldw x, (0x07, sp) ld a, (x) call _ByteToBcd2 ld (0x08, sp), a ldw x, (0x09, sp) ld a, (x) or a, (0x08, sp) ld (0x0a, sp), a ldw x, (0x05, sp) ld a, (x) sll a sll a and a, #0x80 or a, (0x0a, sp) ld (0x0a, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1142: tmpreg4 = (uint8_t)((uint8_t)((ByteToBcd2(RTC_AlarmStruct->RTC_AlarmDateWeekDay)) | \ ldw x, (0x0b, sp) ld a, (x) call _ByteToBcd2 ld (0x0c, sp), a ldw x, (0x0d, sp) ld a, (x) or a, (0x0c, sp) ld (0x0e, sp), a ldw x, (0x05, sp) ld a, (x) sll a sll a sll a and a, #0x80 or a, (0x0e, sp) 00117$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1148: RTC->ALRMAR1 = tmpreg1; ldw x, #0x515c push a ld a, (0x10, sp) ld (x), a pop a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1149: RTC->ALRMAR2 = tmpreg2; ldw x, #0x515d push a ld a, (0x11, sp) ld (x), a pop a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1150: RTC->ALRMAR3 = tmpreg3; ldw x, #0x515e push a ld a, (0x0b, sp) ld (x), a pop a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1151: RTC->ALRMAR4 = tmpreg4; ld 0x515f, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1154: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1155: } addw sp, #17 ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1165: void RTC_AlarmStructInit(RTC_AlarmTypeDef* RTC_AlarmStruct) ; ----------------------------------------- ; function RTC_AlarmStructInit ; ----------------------------------------- _RTC_AlarmStructInit: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1168: RTC_AlarmStruct->RTC_AlarmTime.RTC_H12 = RTC_H12_AM; ldw y, x clr (0x0003, x) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1169: RTC_AlarmStruct->RTC_AlarmTime.RTC_Hours = 0; clr (y) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1170: RTC_AlarmStruct->RTC_AlarmTime.RTC_Minutes = 0; ldw x, y clr (0x01, x) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1171: RTC_AlarmStruct->RTC_AlarmTime.RTC_Seconds = 0; ldw x, y clr (0x02, x) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1174: RTC_AlarmStruct->RTC_AlarmDateWeekDaySel = RTC_AlarmDateWeekDaySel_Date; ldw x, y clr (0x0005, x) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1175: RTC_AlarmStruct->RTC_AlarmDateWeekDay = 1; ld a, #0x01 ld (0x0006, y), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1178: RTC_AlarmStruct->RTC_AlarmMask = RTC_AlarmMask_All; ld a, #0xf0 ld (0x0004, y), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1179: } ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1188: void RTC_GetAlarm(RTC_Format_TypeDef RTC_Format, ; ----------------------------------------- ; function RTC_GetAlarm ; ----------------------------------------- _RTC_GetAlarm: sub sp, #11 ld (0x0b, sp), a ldw (0x09, sp), x ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1201: tmpreg1 = (uint8_t)RTC->ALRMAR1; ld a, 0x515c ld (0x08, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1202: tmpreg2 = (uint8_t)RTC->ALRMAR2; ld a, 0x515d ld (0x01, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1203: tmpreg3 = (uint8_t)RTC->ALRMAR3; ld a, 0x515e ld (0x02, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1204: tmpreg4 = (uint8_t)RTC->ALRMAR4; ld a, 0x515f ld (0x03, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1207: RTC_AlarmStruct->RTC_AlarmTime.RTC_Seconds = (uint8_t)((uint8_t)tmpreg1 & (uint8_t)((uint8_t)RTC_ALRMAR1_ST | (uint8_t)RTC_ALRMAR1_SU)); ldw x, (0x09, sp) incw x incw x ldw (0x04, sp), x ld a, (0x08, sp) and a, #0x7f ldw x, (0x04, sp) ld (x), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1208: alarmmask = (uint8_t)(tmpreg1 & RTC_ALRMAR1_MSK1); ld a, (0x08, sp) and a, #0x80 ld (0x08, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1211: RTC_AlarmStruct->RTC_AlarmTime.RTC_Minutes = (uint8_t)((uint8_t)tmpreg2 & (uint8_t)((uint8_t)RTC_ALRMAR2_MNT | (uint8_t)RTC_ALRMAR2_MNU)); ldw x, (0x09, sp) incw x ldw (0x06, sp), x ld a, (0x01, sp) and a, #0x7f ldw x, (0x06, sp) ld (x), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1212: alarmmask = (uint8_t)((alarmmask) | (uint8_t)((uint8_t)(tmpreg2 & RTC_ALRMAR2_MSK2) >> 1)); ld a, (0x01, sp) and a, #0x80 srl a or a, (0x08, sp) ld (0x08, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1215: RTC_AlarmStruct->RTC_AlarmTime.RTC_Hours = (uint8_t)((uint8_t)tmpreg3 & (uint8_t)((uint8_t)RTC_ALRMAR3_HT | (uint8_t)RTC_ALRMAR3_HU)); ldw y, (0x09, sp) ld a, (0x02, sp) and a, #0x3f ld (y), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1216: RTC_AlarmStruct->RTC_AlarmTime.RTC_H12 = (RTC_H12_TypeDef)((uint8_t)tmpreg3 & (uint8_t)RTC_ALRMAR3_PM); ldw x, (0x09, sp) addw x, #0x0003 ld a, (0x02, sp) and a, #0x40 ld (x), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1217: alarmmask = (uint8_t)((alarmmask) | (uint8_t)((uint8_t)((uint8_t)tmpreg3 & (uint8_t)RTC_ALRMAR3_MSK3) >> 2)); ld a, (0x02, sp) and a, #0x80 srl a srl a or a, (0x08, sp) ld (0x08, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1220: RTC_AlarmStruct->RTC_AlarmDateWeekDay = (uint8_t)((uint8_t)tmpreg4 & (uint8_t)((uint8_t)RTC_ALRMAR4_DT | (uint8_t)RTC_ALRMAR4_DU)); ldw x, (0x09, sp) addw x, #0x0006 ldw (0x01, sp), x ld a, (0x03, sp) and a, #0x3f ldw x, (0x01, sp) ld (x), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1221: RTC_AlarmStruct->RTC_AlarmDateWeekDaySel = (RTC_AlarmDateWeekDaySel_TypeDef)((uint8_t)tmpreg4 & (uint8_t)RTC_ALRMAR4_WDSEL); ldw x, (0x09, sp) addw x, #0x0005 ld a, (0x03, sp) and a, #0x40 ld (x), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1222: alarmmask = (uint8_t)((alarmmask) | (uint8_t)((uint8_t)((uint8_t)tmpreg4 & RTC_ALRMAR4_MSK4) >> 3)); ld a, (0x03, sp) and a, #0x80 srl a srl a srl a or a, (0x08, sp) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1224: RTC_AlarmStruct->RTC_AlarmMask = alarmmask; ldw x, (0x09, sp) addw x, #0x0004 ld (x), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1226: if (RTC_Format == RTC_Format_BIN) tnz (0x0b, sp) jrne 00103$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1228: RTC_AlarmStruct->RTC_AlarmTime.RTC_Hours = Bcd2ToByte(RTC_AlarmStruct->RTC_AlarmTime.RTC_Hours); ld a, (y) pushw y call _Bcd2ToByte popw y ld (y), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1229: RTC_AlarmStruct->RTC_AlarmTime.RTC_Minutes = Bcd2ToByte(RTC_AlarmStruct->RTC_AlarmTime.RTC_Minutes); ldw x, (0x06, sp) ld a, (x) call _Bcd2ToByte ldw x, (0x06, sp) ld (x), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1230: RTC_AlarmStruct->RTC_AlarmTime.RTC_Seconds = Bcd2ToByte(RTC_AlarmStruct->RTC_AlarmTime.RTC_Seconds); ldw x, (0x04, sp) ld a, (x) call _Bcd2ToByte ldw x, (0x04, sp) ld (x), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1231: RTC_AlarmStruct->RTC_AlarmDateWeekDay = Bcd2ToByte(RTC_AlarmStruct->RTC_AlarmDateWeekDay); ldw x, (0x01, sp) ld a, (x) call _Bcd2ToByte ldw x, (0x01, sp) ld (x), a 00103$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1233: } addw sp, #11 ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1242: ErrorStatus RTC_AlarmCmd(FunctionalState NewState) ; ----------------------------------------- ; function RTC_AlarmCmd ; ----------------------------------------- _RTC_AlarmCmd: sub sp, #3 ld (0x03, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1244: __IO uint16_t alrawfcount = 0; clrw x ldw (0x01, sp), x ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1252: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1253: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1258: RTC->CR2 |= (uint8_t)(RTC_CR2_ALRAE); ld a, 0x5149 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1256: if (NewState != DISABLE) tnz (0x03, sp) jreq 00109$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1258: RTC->CR2 |= (uint8_t)(RTC_CR2_ALRAE); or a, #0x01 ld 0x5149, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1259: status = SUCCESS; ld a, #0x01 jra 00110$ 00109$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1263: RTC->CR2 &= (uint8_t)~(RTC_CR2_ALRAE) ; and a, #0xfe ld 0x5149, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1266: temp1 = (uint8_t)(RTC->ISR1 & RTC_ISR1_ALRAWF); ld a, 0x514c and a, #0x01 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1267: while ((alrawfcount != ALRAWF_TIMEOUT) && (temp1 == RESET)) 00102$: ldw x, (0x01, sp) incw x jreq 00104$ tnz a jrne 00104$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1269: alrawfcount++; ldw x, (0x01, sp) incw x ldw (0x01, sp), x jra 00102$ 00104$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1272: if ((RTC->ISR1 & RTC_ISR1_ALRAWF) == RESET) btjt 0x514c, #0, 00106$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1274: status = ERROR; clr a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1278: status = SUCCESS; .byte 0xc5 00106$: ld a, #0x01 00110$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1283: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1286: return (ErrorStatus)status; ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1287: } addw sp, #3 ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1298: ErrorStatus RTC_AlarmSubSecondConfig(uint16_t RTC_AlarmSubSecondValue, ; ----------------------------------------- ; function RTC_AlarmSubSecondConfig ; ----------------------------------------- _RTC_AlarmSubSecondConfig: pushw x ld (0x02, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1309: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1310: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1313: if ((RTC->ISR1 & RTC_ISR1_INITF) == RESET) btjt 0x514c, #6, 00102$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1316: alarmstatus = (uint8_t)(RTC->CR2 | RTC_CR2_ALRAE); ld a, 0x5149 or a, #0x01 ld (0x01, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1319: RTC->CR2 &= (uint8_t)~(RTC_CR2_ALRAE); bres 0x5149, #0 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1322: RTC->ALRMASSRH = (uint8_t)(RTC_AlarmSubSecondValue >> 8); ld a, xh ld 0x5164, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1323: RTC->ALRMASSRL = (uint8_t)(RTC_AlarmSubSecondValue); ld a, xl ld 0x5165, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1324: RTC->ALRMASSMSKR = (uint8_t)RTC_AlarmSubSecondMask; ldw x, #0x5166 ld a, (0x02, sp) ld (x), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1327: RTC->CR2 |= alarmstatus; ld a, 0x5149 or a, (0x01, sp) ld 0x5149, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1329: status = SUCCESS; ld a, #0x01 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1333: status = ERROR; .byte 0x21 00102$: clr a 00103$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1337: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1339: return (ErrorStatus)status; ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1340: } popw x ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1369: void RTC_WakeUpClockConfig(RTC_WakeUpClock_TypeDef RTC_WakeUpClock) ; ----------------------------------------- ; function RTC_WakeUpClockConfig ; ----------------------------------------- _RTC_WakeUpClockConfig: push a ld (0x01, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1376: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1377: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1380: RTC->CR2 &= (uint8_t)~RTC_CR2_WUTE; bres 0x5149, #2 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1383: RTC->CR1 &= (uint8_t)~RTC_CR1_WUCKSEL; ld a, 0x5148 and a, #0xf8 ld 0x5148, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1386: RTC->CR1 |= (uint8_t)RTC_WakeUpClock; ld a, 0x5148 or a, (0x01, sp) ld 0x5148, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1389: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1390: } pop a ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1400: void RTC_SetWakeUpCounter(uint16_t RTC_WakeupCounter) ; ----------------------------------------- ; function RTC_SetWakeUpCounter ; ----------------------------------------- _RTC_SetWakeUpCounter: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1403: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1404: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1408: RTC->WUTRH = (uint8_t)(RTC_WakeupCounter >> 8); ld a, xh ld 0x5154, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1409: RTC->WUTRL = (uint8_t)(RTC_WakeupCounter); ld a, xl ld 0x5155, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1412: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1413: } ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1420: uint16_t RTC_GetWakeUpCounter(void) ; ----------------------------------------- ; function RTC_GetWakeUpCounter ; ----------------------------------------- _RTC_GetWakeUpCounter: pushw x ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1425: tmpreg = ((uint16_t)RTC->WUTRH) << 8; ld a, 0x5154 ld xh, a clr (0x02, sp) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1426: tmpreg |= RTC->WUTRL; ld a, 0x5155 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1429: return (uint16_t)tmpreg; ld xl, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1430: } addw sp, #2 ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1440: ErrorStatus RTC_WakeUpCmd(FunctionalState NewState) ; ----------------------------------------- ; function RTC_WakeUpCmd ; ----------------------------------------- _RTC_WakeUpCmd: push a ld (0x01, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1449: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1450: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1455: RTC->CR2 |= (uint8_t)RTC_CR2_WUTE; ld a, 0x5149 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1452: if (NewState != DISABLE) tnz (0x01, sp) jreq 00109$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1455: RTC->CR2 |= (uint8_t)RTC_CR2_WUTE; or a, #0x04 ld 0x5149, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1457: status = SUCCESS; ld a, #0x01 jra 00110$ 00109$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1462: RTC->CR2 &= (uint8_t)~RTC_CR2_WUTE; and a, #0xfb ld 0x5149, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1465: while (((RTC->ISR1 & RTC_ISR1_WUTWF) == RESET) && ( wutwfcount != WUTWF_TIMEOUT)) clrw x 00102$: btjt 0x514c, #2, 00104$ cpw x, #0xffff jreq 00104$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1467: wutwfcount++; incw x jra 00102$ 00104$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1471: if ((RTC->ISR1 & RTC_ISR1_WUTWF) == RESET) btjt 0x514c, #2, 00106$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1473: status = ERROR; clr a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1477: status = SUCCESS; .byte 0xc5 00106$: ld a, #0x01 00110$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1482: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1485: return (ErrorStatus)status; ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1486: } addw sp, #1 ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1522: void RTC_DayLightSavingConfig(RTC_DayLightSaving_TypeDef RTC_DayLightSaving, ; ----------------------------------------- ; function RTC_DayLightSavingConfig ; ----------------------------------------- _RTC_DayLightSavingConfig: push a ld xl, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1530: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1531: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1534: RTC->CR3 &= (uint8_t)~(RTC_CR3_BCK); ld a, 0x514a and a, #0xfb ld 0x514a, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1537: RTC->CR3 |= (uint8_t)((uint8_t)RTC_DayLightSaving | (uint8_t)RTC_StoreOperation); ld a, 0x514a ld (0x01, sp), a ld a, xl or a, (0x04, sp) or a, (0x01, sp) ld 0x514a, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1540: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1541: } pop a popw x pop a jp (x) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1549: RTC_StoreOperation_TypeDef RTC_GetStoreOperation(void) ; ----------------------------------------- ; function RTC_GetStoreOperation ; ----------------------------------------- _RTC_GetStoreOperation: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1552: return (RTC_StoreOperation_TypeDef)(RTC->CR3 & RTC_CR3_BCK); ld a, 0x514a and a, #0x04 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1553: } ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1587: void RTC_OutputConfig(RTC_Output_TypeDef RTC_Output, ; ----------------------------------------- ; function RTC_OutputConfig ; ----------------------------------------- _RTC_OutputConfig: push a ld xl, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1595: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1596: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1599: RTC->CR3 &= (uint8_t)~(RTC_CR3_OSEL | RTC_CR3_POL); ld a, 0x514a and a, #0x8f ld 0x514a, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1602: RTC->CR3 |= (uint8_t)((uint8_t)RTC_Output | (uint8_t)RTC_OutputPolarity); ld a, 0x514a ld (0x01, sp), a ld a, xl or a, (0x04, sp) or a, (0x01, sp) ld 0x514a, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1605: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1606: } pop a popw x pop a jp (x) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1639: ErrorStatus RTC_SynchroShiftConfig(RTC_ShiftAdd1S_TypeDef RTC_ShiftAdd1S, ; ----------------------------------------- ; function RTC_SynchroShiftConfig ; ----------------------------------------- _RTC_SynchroShiftConfig: push a ld (0x01, sp), a exgw x, y ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1651: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1652: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1655: if ((RTC->ISR1 & RTC_ISR1_SHPF) != RESET) btjf 0x514c, #3, 00106$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1658: while (((RTC->ISR1 & RTC_ISR1_SHPF) != RESET) && (shpfcount != SHPF_TIMEOUT)) clrw x 00102$: btjf 0x514c, #3, 00106$ cpw x, #0xffff jreq 00106$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1660: shpfcount++; incw x jra 00102$ 00106$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1665: if ((RTC->ISR1 & RTC_ISR1_SHPF) == RESET) btjt 0x514c, #3, 00108$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1668: shiftrhreg = (uint8_t)((uint8_t)(RTC_ShiftSubFS >> 8) | (uint8_t)(RTC_ShiftAdd1S)); ld a, yh or a, (0x01, sp) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1669: RTC->SHIFTRH = (uint8_t)(shiftrhreg); ld 0x515a, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1670: RTC->SHIFTRL = (uint8_t)(RTC_ShiftSubFS); ld a, yl ld 0x515b, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1672: status = SUCCESS; ld a, #0x01 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1676: status = ERROR; .byte 0x21 00108$: clr a 00109$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1680: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1682: return (ErrorStatus)(status); ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1683: } addw sp, #1 ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1718: ErrorStatus RTC_SmoothCalibConfig(RTC_SmoothCalibPeriod_TypeDef RTC_SmoothCalibPeriod, ; ----------------------------------------- ; function RTC_SmoothCalibConfig ; ----------------------------------------- _RTC_SmoothCalibConfig: push a ld yl, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1731: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1732: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1735: if ((RTC->ISR1 & RTC_ISR1_RECALPF) != RESET) btjf 0x514c, #1, 00106$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1738: while (((RTC->ISR1 & RTC_ISR1_RECALPF) != RESET) && (recalpfcount != RECALPF_TIMEOUT)) clrw x 00102$: btjf 0x514c, #1, 00106$ cpw x, #0xffff jreq 00106$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1740: recalpfcount++; incw x jra 00102$ 00106$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1746: if ((RTC->ISR1 & RTC_ISR1_RECALPF) == RESET) btjt 0x514c, #1, 00108$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1749: RTC->CALRH = (uint8_t)((uint8_t)((uint8_t)RTC_SmoothCalibPeriod | \ ld a, yl or a, (0x04, sp) ld (0x01, sp), a ld a, (0x05, sp) or a, (0x01, sp) ld 0x516a, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1752: RTC->CALRL = (uint8_t)(RTC_SmouthCalibMinusPulsesValue); ld a, (0x06, sp) ld 0x516b, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1754: status = SUCCESS; ld a, #0x01 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1758: status = ERROR; .byte 0x21 00108$: clr a 00109$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1762: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1764: return (ErrorStatus)(status); ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1765: } ldw x, (2, sp) addw sp, #6 jp (x) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1790: void RTC_CalibOutputConfig(RTC_CalibOutput_TypeDef RTC_CalibOutput) ; ----------------------------------------- ; function RTC_CalibOutputConfig ; ----------------------------------------- _RTC_CalibOutputConfig: push a ld (0x01, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1796: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1797: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1802: RTC->CR3 |= (uint8_t)RTC_CR3_COSEL; ld a, 0x514a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1799: if (RTC_CalibOutput != RTC_CalibOutput_512Hz) tnz (0x01, sp) jreq 00102$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1802: RTC->CR3 |= (uint8_t)RTC_CR3_COSEL; or a, #0x08 ld 0x514a, a jra 00103$ 00102$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1807: RTC->CR3 &= (uint8_t)~RTC_CR3_COSEL; and a, #0xf7 ld 0x514a, a 00103$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1811: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1812: } pop a ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1820: void RTC_CalibOutputCmd(FunctionalState NewState) ; ----------------------------------------- ; function RTC_CalibOutputCmd ; ----------------------------------------- _RTC_CalibOutputCmd: push a ld (0x01, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1826: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1827: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1832: RTC->CR3 |= (uint8_t)RTC_CR3_COE; ld a, 0x514a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1829: if (NewState != DISABLE) tnz (0x01, sp) jreq 00102$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1832: RTC->CR3 |= (uint8_t)RTC_CR3_COE; or a, #0x80 ld 0x514a, a jra 00103$ 00102$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1837: RTC->CR3 &= (uint8_t)~RTC_CR3_COE; and a, #0x7f ld 0x514a, a 00103$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1841: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1842: } pop a ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1871: void RTC_TamperLevelConfig(RTC_Tamper_TypeDef RTC_Tamper, ; ----------------------------------------- ; function RTC_TamperLevelConfig ; ----------------------------------------- _RTC_TamperLevelConfig: push a ld xl, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1879: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1880: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1885: RTC->TCR1 |= (uint8_t)(RTC_Tamper << 1); ld a, 0x516c ld (0x01, sp), a ld a, xl sll a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1882: if (RTC_TamperLevel != RTC_TamperLevel_Low) tnz (0x04, sp) jreq 00102$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1885: RTC->TCR1 |= (uint8_t)(RTC_Tamper << 1); or a, (0x01, sp) ld 0x516c, a jra 00103$ 00102$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1890: RTC->TCR1 &= (uint8_t)~(uint8_t)(RTC_Tamper << 1); cpl a and a, (0x01, sp) ld 0x516c, a 00103$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1894: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1895: } pop a popw x pop a jp (x) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1903: void RTC_TamperFilterConfig(RTC_TamperFilter_TypeDef RTC_TamperFilter) ; ----------------------------------------- ; function RTC_TamperFilterConfig ; ----------------------------------------- _RTC_TamperFilterConfig: push a ld (0x01, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1910: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1911: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1914: RTC->TCR2 &= (uint8_t)~(RTC_TCR2_TAMPFLT); ld a, 0x516d and a, #0xe7 ld 0x516d, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1917: RTC->TCR2 |= (uint8_t)RTC_TamperFilter; ld a, 0x516d or a, (0x01, sp) ld 0x516d, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1920: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1922: } pop a ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1931: void RTC_TamperSamplingFreqConfig(RTC_TamperSamplingFreq_TypeDef RTC_TamperSamplingFreq) ; ----------------------------------------- ; function RTC_TamperSamplingFreqConfig ; ----------------------------------------- _RTC_TamperSamplingFreqConfig: push a ld (0x01, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1937: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1938: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1941: RTC->TCR2 &= (uint8_t)~(RTC_TCR2_TAMPFREQ); ld a, 0x516d and a, #0xf8 ld 0x516d, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1944: RTC->TCR2 |= (uint8_t)RTC_TamperSamplingFreq; ld a, 0x516d or a, (0x01, sp) ld 0x516d, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1947: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1948: } pop a ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1958: void RTC_TamperPinsPrechargeDuration(RTC_TamperPrechargeDuration_TypeDef RTC_TamperPrechargeDuration) ; ----------------------------------------- ; function RTC_TamperPinsPrechargeDuration ; ----------------------------------------- _RTC_TamperPinsPrechargeDuration: push a ld (0x01, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1964: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1965: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1968: RTC->TCR2 &= (uint8_t)~(RTC_TCR2_TAMPPUDIS | RTC_TCR2_TAMPPRCH); ld a, 0x516d and a, #0x1f ld 0x516d, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1971: RTC->TCR2 |= (uint8_t)RTC_TamperPrechargeDuration; ld a, 0x516d or a, (0x01, sp) ld 0x516d, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1974: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1975: } pop a ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1987: void RTC_TamperCmd(RTC_Tamper_TypeDef RTC_Tamper, ; ----------------------------------------- ; function RTC_TamperCmd ; ----------------------------------------- _RTC_TamperCmd: push a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1996: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 1997: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2003: RTC->TCR1 |= (uint8_t)RTC_Tamper; ldw x, #0x516c push a ld a, (x) ld (0x02, sp), a pop a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2000: if (NewState != DISABLE) tnz (0x04, sp) jreq 00102$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2003: RTC->TCR1 |= (uint8_t)RTC_Tamper; or a, (0x01, sp) ld 0x516c, a jra 00103$ 00102$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2008: RTC->TCR1 &= (uint8_t)~RTC_Tamper; cpl a and a, (0x01, sp) ld 0x516c, a 00103$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2013: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2014: } pop a popw x pop a jp (x) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2058: void RTC_ITConfig(RTC_IT_TypeDef RTC_IT, FunctionalState NewState) ; ----------------------------------------- ; function RTC_ITConfig ; ----------------------------------------- _RTC_ITConfig: sub sp, #3 ld (0x03, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2065: RTC->WPR = 0xCA; mov 0x5159+0, #0xca ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2066: RTC->WPR = 0x53; mov 0x5159+0, #0x53 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2071: RTC->CR2 |= (uint8_t)((uint16_t)RTC_IT & (uint16_t)0x00F0); ld a, 0x5149 ld (0x02, sp), a ld a, xl and a, #0xf0 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2072: RTC->TCR1 |= (uint8_t)((uint16_t)RTC_IT & RTC_TCR1_TAMPIE); push a ld a, xl and a, #0x01 ld (0x02, sp), a pop a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2068: if (NewState != DISABLE) tnz (0x03, sp) jreq 00102$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2071: RTC->CR2 |= (uint8_t)((uint16_t)RTC_IT & (uint16_t)0x00F0); or a, (0x02, sp) ld 0x5149, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2072: RTC->TCR1 |= (uint8_t)((uint16_t)RTC_IT & RTC_TCR1_TAMPIE); ld a, 0x516c or a, (0x01, sp) ld 0x516c, a jra 00103$ 00102$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2077: RTC->CR2 &= (uint8_t)~(uint8_t)((uint16_t)RTC_IT & (uint16_t)0x00F0); cpl a and a, (0x02, sp) ld 0x5149, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2078: RTC->TCR1 &= (uint8_t)~(uint8_t)((uint16_t)RTC_IT & (uint16_t)RTC_TCR1_TAMPIE); ld a, 0x516c ld (0x02, sp), a ld a, (0x01, sp) cpl a and a, (0x02, sp) ld 0x516c, a 00103$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2082: RTC->WPR = 0xFF; mov 0x5159+0, #0xff ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2083: } addw sp, #3 ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2090: FlagStatus RTC_GetFlagStatus(RTC_Flag_TypeDef RTC_FLAG) ; ----------------------------------------- ; function RTC_GetFlagStatus ; ----------------------------------------- _RTC_GetFlagStatus: sub sp, #6 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2100: tmpreg2 = (uint16_t)((uint16_t)RTC->ISR1 << 8); ld a, 0x514c ld yl, a clr (0x02, sp) ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2101: tmpreg1 = (uint16_t)((uint16_t)((uint16_t)(RTC->ISR2)) | tmpreg2); ld a, 0x514d clr (0x03, sp) ld (0x06, sp), a exg a, yl ld (0x05, sp), a exg a, yl ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2104: if ((tmpreg1 & (uint16_t)RTC_FLAG) != RESET) ld a, xl and a, (0x06, sp) rlwa x and a, (0x05, sp) ld xh, a tnzw x jreq 00102$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2106: flagstatus = SET; ld a, #0x01 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2110: flagstatus = RESET; .byte 0x21 00102$: clr a 00103$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2112: return (FlagStatus)flagstatus; ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2113: } addw sp, #6 ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2122: void RTC_ClearFlag(RTC_Flag_TypeDef RTC_FLAG) ; ----------------------------------------- ; function RTC_ClearFlag ; ----------------------------------------- _RTC_ClearFlag: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2128: RTC->ISR2 = (uint8_t)~((uint8_t)RTC_FLAG) ; ld a, xl cpl a ld 0x514d, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2129: RTC->ISR1 = (uint8_t)(((uint8_t)~(uint8_t)((uint16_t)RTC_FLAG >> (uint8_t)8)) & ((uint8_t)~(uint8_t)(RTC_ISR1_INIT))); ld a, xh cpl a and a, #0x7f ld 0x514c, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2130: } ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2138: ITStatus RTC_GetITStatus(RTC_IT_TypeDef RTC_IT) ; ----------------------------------------- ; function RTC_GetITStatus ; ----------------------------------------- _RTC_GetITStatus: push a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2147: enablestatus = (uint8_t)(RTC->CR2 & (uint16_t)RTC_IT); ld a, 0x5149 ld (0x01, sp), a ld a, xl and a, (0x01, sp) ld (0x01, sp), a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2150: tmpreg = (uint8_t)(RTC->ISR2 & (uint8_t)((uint16_t)RTC_IT >> 4)); ld a, 0x514d srlw x srlw x srlw x srlw x pushw x and a, (2, sp) popw x ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2153: if ((enablestatus != (uint8_t)RESET) && (tmpreg != (uint8_t)RESET)) tnz (0x01, sp) jreq 00102$ tnz a jreq 00102$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2155: itstatus = SET; ld a, #0x01 ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2159: itstatus = RESET; .byte 0x21 00102$: clr a 00103$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2162: return (ITStatus)itstatus; ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2163: } addw sp, #1 ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2172: void RTC_ClearITPendingBit(RTC_IT_TypeDef RTC_IT) ; ----------------------------------------- ; function RTC_ClearITPendingBit ; ----------------------------------------- _RTC_ClearITPendingBit: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2178: RTC->ISR2 = (uint8_t)~(uint8_t)((uint16_t)RTC_IT >> 4); ld a, #0x10 div x, a ld a, xl cpl a ld 0x514d, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2179: } ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2202: static uint8_t ByteToBcd2(uint8_t Value) ; ----------------------------------------- ; function ByteToBcd2 ; ----------------------------------------- _ByteToBcd2: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2206: while (Value >= 10) clrw x 00101$: cp a, #0x0a jrc 00103$ ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2208: bcdhigh++; incw x ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2209: Value -= 10; sub a, #0x0a jra 00101$ 00103$: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2212: return (uint8_t)((uint8_t)(bcdhigh << 4) | Value); sllw x sllw x sllw x sllw x pushw x or a, (2, sp) popw x ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2213: } ret ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2220: static uint8_t Bcd2ToByte(uint8_t Value) ; ----------------------------------------- ; function Bcd2ToByte ; ----------------------------------------- _Bcd2ToByte: ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2224: tmp = (uint8_t)((uint8_t)((uint8_t)(Value & (uint8_t)0xF0) >> 4) * (uint8_t)10); ld yl, a and a, #0xf0 swap a and a, #0x0f ld xl, a ld a, #0x0a mul x, a ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2226: return (uint8_t)(tmp + (Value & (uint8_t)0x0F)); ld a, yl and a, #0x0f pushw x add a, (2, sp) popw x ; ../inc/stm8l151x/src/stm8l15x_rtc.c: 2227: } ret .area CODE .area CONST .area INITIALIZER .area CABS (ABS)