Linux操作系统内核对RTC的编程详解(3)

文章作者 100test 发表时间 2007:03:14 16:39:48
来源 100Test.Com百考试题网


寄存器C是RTC芯片的中断请求状态寄存器,Linux用宏别名RTC_INTR_FLAGS来表示寄存器C,它与其中的各标志位的定义如下所示:

#define RTC_INTR_FLAGS RTC_REG_C 

/* caution - cleared by read */ 

# define RTC_IRQF 0x80 /* any of the following 3 is active */ 

# define RTC_PF 0x40 

# define RTC_AF 0x20 

# define RTC_UF 0x10

寄存器D仅定义了其最高位bit[7],以表示RTC芯片是否有效。因此寄存器D也称为RTC的有效寄存器。Linux用宏别名RTC_VALID来表示寄存器D,如下:

#define RTC_VALID RTC_REG_D 

# define RTC_VRT 0x80 /* valid RAM and time */

(3)二进制格式与BCD格式的相互转换

由于时间与日期寄存器中的值可能以BCD格式存储,也可能以二进制格式存储,因此需要定义二进制格式与BCD格式之间的相互转换宏,以方便编程。如下:

#ifndef BCD_TO_BIN 

#define BCD_TO_BIN(val) ((val)=((val)&.15)   ((val)>>4)*10) 

#endif 



#ifndef BIN_TO_BCD 

#define BIN_TO_BCD(val) ((val)=(((val)/10)<<4)   (val)) 

#endif


相关文章


Linux系统编程之C 游戏程序优化(1)
Linux操作系统内核对RTC的编程详解(4)
Linux操作系统内核对RTC的编程详解(3)
Linux操作系统内核对RTC的编程详解(1)
Linux操作系统跨控制台登录方法运用(上)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛