mình đang làm dong hồ so dùnng pic ,có vài thắc mắc muốn nhờ các bác chỉ giáo:
void update_time()
{
i2c_start();
i2c_write(0xD0);
i2c_write(0x00); // BAT DAU TAI VI TRI REG 0 - Seconds
i2c_start(); //restart
i2c_write(0xD1);
sec = (i2c_read() & 0x7f);
min = (i2c_read() & 0x7f);
hour = (i2c_read(0) & 0x7f);
i2c_stop();
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX
void convert()
{
sec1=sec & 0x0F;
sec2=(sec & 0x70)>>4; //convert to BCD SEC
min1=min & 0x0F;
min2=(min & 0x70)>>4; //convert to BCD MIN
hour1=hour & 0x0F;
hour2=(hour & 0x70)>>4; //convert to BCD HOU
2 doan code trên mục đích là để làm ji, tai sao phải &0x7f và 0x70? mong các bác viết rỏ , mình gà lắm hix
void update_time()
{
i2c_start();
i2c_write(0xD0);
i2c_write(0x00); // BAT DAU TAI VI TRI REG 0 - Seconds
i2c_start(); //restart
i2c_write(0xD1);
sec = (i2c_read() & 0x7f);
min = (i2c_read() & 0x7f);
hour = (i2c_read(0) & 0x7f);
i2c_stop();
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX
void convert()
{
sec1=sec & 0x0F;
sec2=(sec & 0x70)>>4; //convert to BCD SEC
min1=min & 0x0F;
min2=(min & 0x70)>>4; //convert to BCD MIN
hour1=hour & 0x0F;
hour2=(hour & 0x70)>>4; //convert to BCD HOU
2 doan code trên mục đích là để làm ji, tai sao phải &0x7f và 0x70? mong các bác viết rỏ , mình gà lắm hix
Comment