cpp展开代码int main(void)
{
    WDTCTL = WDTPW | WDTHOLD; //关闭看门狗
    init();                     //屏幕初始化
    InitIIC();     //I2C初始化
    TMP_Init();     //tmp421初始化
    SetupRTC();
    _EINT();
    while (1)
    {
    }
}
#pragma vector=RTC_VECTOR
__interrupt void RTC_ISR(void)
{
    switch (__even_in_range(RTCIV, RTC_RT1PSIFG))
    {
    case RTC_NONE:
        break;
    case RTC_RTCRDYIFG:
    {
        Temp_MSB = R_I2C(0x55, 0x00);          //读MSB  高八位,表达整数部分
        Temp_LSB = R_I2C(0x55, 0x10);       //读LSB  第八位,高四位有效,表达小数部分,一格代表0.0625℃
        Temp_LSB = Temp_LSB >> 4;           //右移四位
        float Temp_value = Temp_LSB * 0.0625; //小数部分处理
        unsigned char Temp_LSB1 = Temp_value * 100;
        sprintf(buf1, "%d", Temp_MSB);        //类型转换
        sprintf(buf2, "%d", Temp_LSB1);
        Init_buff();                        //数据显示
        //display("Temperature:", 20, 12, 0, 1, 0, 0);
        display(&buf1, 80, 84, 0, 1, 0, 0);
        display(".", 128, 84, 0, 1, 0, 0);
        display(&buf2, 144, 84, 0, 1, 0, 0);
        /* RTCDOW   RTCMON   RTCDAY  RTCHOUR  RTCMIN RTCSEC */
        //读取时间
        nian = RTCYEAR;
        yue = RTCMON;
        ri = RTCDAY;
        shi = RTCHOUR;
        fen = RTCMIN;
        miao = RTCSEC;
        zhou = RTCDOW;
    }
        break;
    case RTC_RTCTEVIFG:
        break;
    case RTC_RTCAIFG:
        break;
    case RTC_RT0PSIFG:
        break; /* 分频器 0 */
    case RTC_RT1PSIFG:
        break; /* 分频器 1 */
    default:
        break;
    }
    __no_operation();
}
显示实时时间和温度。

下载:
cpp展开代码https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2

资料:


本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!