Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->Linux程序设计 ->正文

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

来源: 作者: 时间:2007-04-11 点击: [收藏] [投稿]












寄存器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)%10) 
#endif


 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:Linux系统编程之C++游戏程序优化   下一篇:Linux程序开发:QT中的多线程编程

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号