📄 i2c.c
字号:
case 21: /* write to alarm date register */
RTC_Data = _getkey();
I2CStart();
if (I2CMasterWrite(Dev_Add))
I2CStop();
if (I2CMasterWrite(Al_DOM_Add_Reg))
I2CStop();
if (I2CMasterWrite(RTC_Data))
I2CStop();
I2CStop();
break;
case 22: /* write to alarm hour register */
RTC_Data = _getkey();
I2CStart();
if (I2CMasterWrite(Dev_Add))
I2CStop();
if (I2CMasterWrite(Al_Hr_Add_Reg))
I2CStop();
if (I2CMasterWrite(RTC_Data))
I2CStop();
I2CStop();
break;
case 23: /* write to alarm minute register */
RTC_Data = _getkey();
I2CStart();
if (I2CMasterWrite(Dev_Add))
I2CStop();
if (I2CMasterWrite(Al_Min_Add_Reg))
I2CStop();
if (I2CMasterWrite(RTC_Data))
I2CStop();
I2CStop();
break;
case 24: /* write to alarm second register */
RTC_Data = _getkey();
I2CStart();
if (I2CMasterWrite(Dev_Add))
I2CStop();
if (I2CMasterWrite(Al_Sec_Add_Reg))
I2CStop();
if (I2CMasterWrite(RTC_Data))
I2CStop();
I2CStop();
break;
case 25: /* write OF bit to the flags register */
RTC_Data = _getkey();
I2CStart();
if (I2CMasterWrite(Dev_Add))
I2CStop();
if (I2CMasterWrite(Flags_Add_Reg))
I2CStop();
if (I2CMasterWrite(RTC_Data))
I2CStop();
I2CStop();
break;
case 26: /* read the flags register */
I2CStart();
if (I2CMasterWrite(Dev_Add))
I2CStop();
if (I2CMasterWrite(Flags_Add_Reg))
I2CStop();
I2CStart();
if (I2CMasterWrite(Dev_Add+1))
I2CStop();
Flags_Reg = I2CMasterRead(1);
putchar (Flags_Reg);
I2CStop();
break;
/******************************************************************************/
/* */
/* case 27-29 are not used (reserved registers) */
/* */
/******************************************************************************/
case 30: /* write to SQW register */
RTC_Data = _getkey();
I2CStart();
if (I2CMasterWrite(Dev_Add))
I2CStop();
if (I2CMasterWrite(SQW_Add_Reg))
I2CStop();
if (I2CMasterWrite(RTC_Data))
I2CStop();
I2CStop();
break;
case 31: /* write to Tamper1 register */
RTC_Data = _getkey();
I2CStart();
if (I2CMasterWrite(Dev_Add))
I2CStop();
if (I2CMasterWrite(Tamper1_Add_Reg))
I2CStop();
if (I2CMasterWrite(RTC_Data))
I2CStop();
I2CStop();
break;
case 32: /* write to Tamper2 register */
RTC_Data = _getkey();
I2CStart();
if (I2CMasterWrite(Dev_Add))
I2CStop();
\
if (I2CMasterWrite(Tamper2_Add_Reg))
I2CStop();
if (I2CMasterWrite(RTC_Data))
I2CStop();
I2CStop();
break;
/******************************************************************************/
/* */
/* case 40 - Reading the RTC Reg. of T0/T00/T11/T56 devices. */
/* */
/******************************************************************************/
case 40: /* Read the RTC Reg. Map */
I2CStart();
if (I2CMasterWrite(Dev_Add))
I2CStop();
if (I2CMasterWrite(Sec_Add_Reg))
I2CStop();
I2CStart();
if (I2CMasterWrite(Dev_Add+1))
I2CStop();
Sec_Reg = I2CMasterRead(0);
Min_Reg = I2CMasterRead(0);
Hr_Reg = I2CMasterRead(0);
DOW_Reg = I2CMasterRead(0);
DOM_Reg = I2CMasterRead(0);
Mon_Reg = I2CMasterRead(0);
Yr_Reg = I2CMasterRead(0);
Cont_Reg = I2CMasterRead(1);
Interrupts = P1;
I2CStop();
putchar (Sec_Reg);
putchar (Min_Reg);
putchar (Hr_Reg);
putchar (DOW_Reg);
putchar (DOM_Reg);
putchar (Mon_Reg);
putchar (Yr_Reg);
putchar (Cont_Reg);
putchar (Interrupts);
break;
/******************************************************************************/
/* */
/* case 41 - Reading the RTC Reg. of T80/T81/ST84/ST85 devices (I2C) */
/* */
/******************************************************************************/
case 41: /* Read the RTC Reg. Map */
I2CStart();
if (I2CMasterWrite(Dev_Add))
I2CStop();
if (I2CMasterWrite(Tenths_Sec_Add_Reg))
I2CStop();
I2CStart();
if (I2CMasterWrite(Dev_Add+1))
I2CStop();
Tenths_Sec_Reg = I2CMasterRead(0);
Sec_Reg = I2CMasterRead(0);
Min_Reg = I2CMasterRead(0);
Hr_Reg = I2CMasterRead(0);
DOW_Reg = I2CMasterRead(0);
DOM_Reg = I2CMasterRead(0);
Mon_Reg = I2CMasterRead(0);
Yr_Reg = I2CMasterRead(0);
Cont_Reg = I2CMasterRead(0);
Wdog_Reg = I2CMasterRead(0);
Al_Mon_Reg = I2CMasterRead(0);
Al_DOM_Reg = I2CMasterRead(0);
Al_Hr_Reg = I2CMasterRead(0);
Al_Min_Reg = I2CMasterRead(0);
Al_Sec_Reg = I2CMasterRead(1);
I2CStop();
I2CStart();
if (I2CMasterWrite(Dev_Add))
I2CStop();
if (I2CMasterWrite(SQW_Add_Reg))
I2CStop();
I2CStart();
if (I2CMasterWrite(Dev_Add+1))
I2CStop();
SQW_Reg = I2CMasterRead(1);
I2CStop();
Interrupts = P1;
putchar (Tenths_Sec_Reg);
putchar (Sec_Reg);
putchar (Min_Reg);
putchar (Hr_Reg);
putchar (DOW_Reg);
putchar (DOM_Reg);
putchar (Mon_Reg);
putchar (Yr_Reg);
putchar (Cont_Reg);
putchar (Wdog_Reg);
putchar (Al_Mon_Reg);
putchar (Al_DOM_Reg);
putchar (Al_Hr_Reg);
putchar (Al_Min_Reg);
putchar (Al_Sec_Reg);
putchar (SQW_Reg);
putchar (Interrupts);
break;
/******************************************************************************/
/* */
/* case 42 - Reading the RTC Reg. of ST87 device (I2C) */
/* */
/******************************************************************************/
case 42: /* Read the RTC Reg. Map */
I2CStart();
if (I2CMasterWrite(Dev_Add))
I2CStop();
if (I2CMasterWrite(Tenths_Sec_Add_Reg))
I2CStop();
I2CStart();
if (I2CMasterWrite(Dev_Add+1))
I2CStop();
Tenths_Sec_Reg = I2CMasterRead(0);
Sec_Reg = I2CMasterRead(0);
Min_Reg = I2CMasterRead(0);
Hr_Reg = I2CMasterRead(0);
DOW_Reg = I2CMasterRead(0);
DOM_Reg = I2CMasterRead(0);
Mon_Reg = I2CMasterRead(0);
Yr_Reg = I2CMasterRead(0);
Cont_Reg = I2CMasterRead(0);
Wdog_Reg = I2CMasterRead(0);
Al_Mon_Reg = I2CMasterRead(0);
Al_DOM_Reg = I2CMasterRead(0);
Al_Hr_Reg = I2CMasterRead(0);
Al_Min_Reg = I2CMasterRead(0);
Al_Sec_Reg = I2CMasterRead(1);
I2CStop();
I2CStart();
if (I2CMasterWrite(Dev_Add))
I2CStop();
if (I2CMasterWrite(SQW_Add_Reg))
I2CStop();
I2CStart();
if (I2CMasterWrite(Dev_Add+1))
I2CStop();
SQW_Reg = I2CMasterRead(0);
Tamper1_Reg = I2CMasterRead(0);
Tamper2_Reg = I2CMasterRead(1);
I2CStop();
Interrupts = P1;
putchar (Tenths_Sec_Reg);
putchar (Sec_Reg);
putchar (Min_Reg);
putchar (Hr_Reg);
putchar (DOW_Reg);
putchar (DOM_Reg);
putchar (Mon_Reg);
putchar (Yr_Reg);
putchar (Cont_Reg);
putchar (Wdog_Reg);
putchar (Al_Mon_Reg);
putchar (Al_DOM_Reg);
putchar (Al_Hr_Reg);
putchar (Al_Min_Reg);
putchar (Al_Sec_Reg);
putchar (SQW_Reg);
putchar (Tamper1_Reg);
putchar (Tamper2_Reg);
putchar (Interrupts);
break;
/*******************************************************************************/
/* */
/* case 45 - Write (Burst) Time to the RTC Reg. */
/* */
/*******************************************************************************/
case 45:
Sec_Data = _getkey();
Min_Data = _getkey();
Hr_Data = _getkey();
DOW_Data = _getkey();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -