cppint 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();
}
显示实时时间和温度。
下载:
cpphttps://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
资料:
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!