📄 clock.c
字号:
#include "uicc_def.h"
#include "main.h"
#ifdef CLOCK_STANDBY
#define CK_SET UICC_SETUP
#define CK_SEL UICC_PLAY
#define CK_UP UICC_UP
#define CK_DOWN UICC_DOWN
#define write_status() {i2c_select_device(0x62,0x02);i2c_stop();}
//#define read_clock() i2c_
unsigned char time_val[3];
unsigned hm_flag; //0--hour
extern unsigned display_type,uicc_code,g_ui_tmp_msg_cnt;
unsigned char bcd_to_hex(unsigned char data)
{
return ((data&0x0f)+((data&0xf0)>>4)*10);
}
unsigned char hex_to_bcd(unsigned char data)
{
return ((data%10) + ((data/10)<<4));
}
unsigned char ml_trans(unsigned char data)
{
unsigned char i,val;
val=0;
for(i=0;i<8;i++)
{
val <<=1;
if(data&0x80)
val |= 0x01;
data <<=1;
};
return val;
}
void read_clock(void)
{
unsigned char i;
if(i2c_start())
{
if(i2c_putc(0x67))
{
for(i=0;i<3;i++)
{
time_val[i] = bcd_to_hex(ml_trans(i2c_getc(1)));
}
// i2c_stop();
// return 1;
}
};
i2c_stop();
//return 0;
}
void write_clock(void)
{
unsigned char i;
if(i2c_start())
{
if(i2c_putc(0x66))
{
for(i=0;i<3;i++)
i2c_putc(ml_trans(hex_to_bcd(time_val[i])));
// i2c_stop();
// return 1;
}
};
i2c_stop();
//return 0;
}
void clock_operator(void)
{
switch(uicc_code)
{
case CK_SET:
if(display_type==DISPLAY_TIME)
{
write_status();
write_clock();
g_ui_tmp_msg_cnt = 1;
}
else
{
g_ui_tmp_msg_cnt = 20;
read_clock();
display_type = DISPLAY_TIME;
hm_flag = 0;
};
break;
case CK_SEL:
g_ui_tmp_msg_cnt = 20;
if(hm_flag)
hm_flag = 1;
else
hm_flag = 0;
break;
case CK_UP:
if(hm_flag)
{//minute
if((++time_val[1])>=60)
time_val[1] = 0;
}
else
{//hour
if((++time_val[0])>=24)
time_val[0] = 0;
}
g_ui_tmp_msg_cnt = 20;
break;
};
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -