/*①*****************主程序**********************************************************************************/
int main(void)
{
LUX=55;
LUY=60;
RUX=LUX+210;
RUY=LUY;
POINT_X=165;
POINT_Y=467;
fistsca=1; //当设备开机后置1,用于更新时间
First_Powerup=1; //当设备开机后置1,用于更新时间
delay_init(); //延时函数初始化
SystemInit();
RCC_Configuare();
NVIC_Configuare();
TIM3_Configuare();
ds1302_gpio_init();
Init_IO();
Init_IN_OUT();
IIC_Init();
BMP280Init();
DS1302_Init();
Lcd_Init(); //初始化OLED
LCD_Clear(BLACK);
BACK_COLOR=BLACK;
PVD_Init(); //掉电检测
readflash7(); //读取FLASH中最高海拔
Alatitude_flash=temp_flash; //flash最高海拔保存到缓存中
HUD_Static(); //HUD静态的标线显示
while(1)
{
/*A************************************开机执行一次 显示数据****************************************************************/
if((First_Powerup == 1)|(O_Clock == 1)) //设备开机或者0点更新 年月日
{
O_Clock=0; //0点时间激活
First_Powerup=0; //设备开机
display_real_time(); //获取时间
ConversionNL(0,year,month,day); //农历转换
SHOW_TIME_YMD(); //⑩⑦ 显示年月日星期
jishiben(); //记事本
SHOW_UP(); //抬头显示
show_BME280Data(); //获取海拔数据
haiba_show(ALADOUBLE); //实际海拔显示
biaochi(ALATEMP); //标尺的刻度
list_baiba(ALATEMP); //实际海拔刻度线和圈
T_H_Q_P(ALADOUBLE,PRESSSHOW,0); //气压、温度等显示
}
/*************************************时间数据和显示**************************************************************/
if(Read_Time) //读取DS1302时间到
{
Read_Time=0; //计时时间到读取
display_real_time(); //获取时间
SHOW_TIME_HMS(); //显示时分秒
Pointer(); //三角形
time_runing_counter++;
}
/*************************************气压数据和显示**************************************************************/
//if(Read_BME280) //通过定时 读取BME280参数
if(time_runing_counter==5) //通过时间计数读取
{
Display_Asc_String(80,10,3,"RBM",GREEN); //READ BME280
time_runing_counter=0;
Read_BME280=0;
show_BME280Data(); //获取海拔数据
haiba_show(ALADOUBLE); //实际海拔显示
biaochi(ALATEMP); //标尺的刻度
list_baiba(ALATEMP); //实际海拔刻度线和圈
T_H_Q_P(ALADOUBLE,PRESSSHOW,2); //气压、温度等显示
counter_HQTP++; //温度氧含量等显示计算次数每4次计算一次0.5S*4=2S
}
Display_Asc_String(80,10,3,"RBM",BLACK); //READ BME280
/*************************************气压数据和显示**************************************************************/
if(FUNCTION_K5())
{
FC9_MAX_Alatitude();
// LCD_ShowNum(100,70,ALATEMP,5,GREEN,32);
}
if(FC8_K3_K4())
{
;
}
///*************************************气压数据和显示**************************************************************/
if(show_alaw) //定时2秒启动
{
show_alaw=0;
if((max_show==1)&&(Function_num!=11))
{
Function_num=10;}
}
/*************************************时间数据设置**************************************************************/
if(keypros())
{
DEC_BCD(); //时间函数10进制转换16进制
Ds1302Init(); //将设置的时间写入芯片
display_real_time(); //获取时间
SHOW_TIME_YMD(); //⑩⑦ 显示年月日星期
ConversionNL(0,year,month,day); //农历转换
}
jishi();
}
}
/*①*****************主程序**********************************************************************************/
int main(void)
{
LUX=55;
LUY=60;
RUX=LUX+210;
RUY=LUY;
POINT_X=165;
POINT_Y=467;
fistsca=1; //当设备开机后置1,用于更新时间
First_Powerup=1; //当设备开机后置1,用于更新时间
delay_init(); //延时函数初始化
SystemInit();
RCC_Configuare();
NVIC_Configuare();
TIM3_Configuare();
ds1302_gpio_init();
Init_IO();
Init_IN_OUT();
IIC_Init();
BMP280Init();
DS1302_Init();
Lcd_Init(); //初始化OLED
LCD_Clear(BLACK);
BACK_COLOR=BLACK;
PVD_Init(); //掉电检测
readflash7(); //读取FLASH中最高海拔
Alatitude_flash=temp_flash; //flash最高海拔保存到缓存中
HUD_Static(); //HUD静态的标线显示
while(1)
{
/*A************************************开机执行一次 显示数据****************************************************************/
if((First_Powerup == 1)|(O_Clock == 1)) //设备开机或者0点更新 年月日
{
O_Clock=0; //0点时间激活
First_Powerup=0; //设备开机
display_real_time(); //获取时间
ConversionNL(0,year,month,day); //农历转换
SHOW_TIME_YMD(); //⑩⑦ 显示年月日星期
jishiben(); //记事本
SHOW_UP(); //抬头显示
show_BME280Data(); //获取海拔数据
haiba_show(ALADOUBLE); //实际海拔显示
biaochi(ALATEMP); //标尺的刻度
list_baiba(ALATEMP); //实际海拔刻度线和圈
T_H_Q_P(ALADOUBLE,PRESSSHOW,0); //气压、温度等显示
}
/*************************************时间数据和显示**************************************************************/
if(Read_Time) //读取DS1302时间到
{
Read_Time=0; //计时时间到读取
display_real_time(); //获取时间
SHOW_TIME_HMS(); //显示时分秒
Pointer(); //三角形
time_runing_counter++;
}
/*************************************气压数据和显示**************************************************************/
//if(Read_BME280) //通过定时 读取BME280参数
if(time_runing_counter==5) //通过时间计数读取
{
Display_Asc_String(80,10,3,"RBM",GREEN); //READ BME280
time_runing_counter=0;
Read_BME280=0;
show_BME280Data(); //获取海拔数据
haiba_show(ALADOUBLE); //实际海拔显示
biaochi(ALATEMP); //标尺的刻度
list_baiba(ALATEMP); //实际海拔刻度线和圈
T_H_Q_P(ALADOUBLE,PRESSSHOW,2); //气压、温度等显示
counter_HQTP++; //温度氧含量等显示计算次数每4次计算一次0.5S*4=2S
}
Display_Asc_String(80,10,3,"RBM",BLACK); //READ BME280
/*************************************气压数据和显示**************************************************************/
if(FUNCTION_K5())
{
FC9_MAX_Alatitude();
// LCD_ShowNum(100,70,ALATEMP,5,GREEN,32);
}
if(FC8_K3_K4())
{
;
}
///*************************************气压数据和显示**************************************************************/
if(show_alaw) //定时2秒启动
{
show_alaw=0;
if((max_show==1)&&(Function_num!=11))
{
Function_num=10;}
}
/*************************************时间数据设置**************************************************************/
if(keypros())
{
DEC_BCD(); //时间函数10进制转换16进制
Ds1302Init(); //将设置的时间写入芯片
display_real_time(); //获取时间
SHOW_TIME_YMD(); //⑩⑦ 显示年月日星期
ConversionNL(0,year,month,day); //农历转换
}
jishi();
}
}