This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Driverlib 2.91.00.20 RTC_C_setCounterValue 函数中存在错误?

Guru**** 2587365 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/623089/bug-in-driverlib-2-91-00-20-rtc_c_setcountervalue-function

您好!

函数 RTC_C_setCounterValue 具有以下代码:

if (MODE = RTC_C_COUNTERSIZE_8位&& counterValue > 0xF)
{
counterValue = 0xF;
}
否则、如果(MODE = RTC_C_COUNTERSIZE _16BIT && counterValue > 0xFF)
{
counterValue = 0xFF;
}
否则、如果(MODE = RTC_C_COUNTERSIZE_24BIT && counterValue > 0xFFFFFF")
{
counterValue = 0xFFFFFF;
} 

代码不应是:

如果(MODE = RTC_C_COUNTERSIZE_8位&& counterValue > UINT8_MAX){
counterValue = UINT8_MAX;
}否则(MODE = RTC_C_COUNTERSIZE_16BIT && counterValue > UINT16_MAX){counterValue
= UINT16_MAX;
}如果(MODE = 0xRTC_COUNTERSIZE_16位)= 0xUNCCERValue = UINT16_MAX;}则为0xC_COUNTERZE_COUNT_COUNT_COUNT_COUNT_COUNT_COUNT_VALUE


另一个问题是   、函数 RTC_C_initCounter 和 RTC_C_initCounterPrescale 的末尾没有向 RTCCTL0_H 寄存器写入零吗?

编辑:

RTC_C_initCalendar 函数:

void RTC_C_initCalendar (uint16_t baseAddress、
日历*CalendarTime、
uint16_t formatSelect)
{
HWREG8 (baseAddress + OFS_RTCCTL0_H)= RTCKEY;

HWREG8 (baseAddress + OFS_RTCCTL13_L)|= RTCHOLD;
HWREG8 (baseAddress + OFS_RTCCTL13)|= RTCMODE; ////<<< driverlib 中需要并缺少此行?

HWREG16 (baseAddress + OFS_RTCCTL13_L)&=~(RTCBCD);
HWREG16 (baseAddress + OFS_RTCCTL13_L)|= formatSelect;

HWREG8 (baseAddress + OFS_RTCTIM0_L)=日历时间->秒;
HWREG8 (baseAddress + OFS_RTCTIM0_H)=日历时间->分钟;
HWREG8 (baseAddress + OFS_RTCTIM1_L)=日历时间->小时;
HWREG8 (baseAddress + OFS_RTCTIM1_H)=日历时间->DayOfWeek;
HWREG8 (baseAddress + OFS_RTCDATE_L)=日历时间->月中某天;
HWREG8 (baseAddress + OFS_RTCDATE_H)=日历时间->月;
HWREG16 (baseAddress + OFS_RTCYEAR)=日历时间->年;

HWREG8 (baseAddress + OFS_RTCCTL0_H)= 0x00;
} 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Mateusz、

    很重要的一点是、这些确实是 DriverLib 的 RTC_C 函数中的错误。 我将让软件团队进行调查并在必要时进行更改。

    此致、
    Ryan