wince中rtc驱动开发介绍

wince中rtc驱动开发介绍

ID:22632640

大小:69.50 KB

页数:8页

时间:2018-10-30

wince中rtc驱动开发介绍_第1页
wince中rtc驱动开发介绍_第2页
wince中rtc驱动开发介绍_第3页
wince中rtc驱动开发介绍_第4页
wince中rtc驱动开发介绍_第5页
资源描述:

《wince中rtc驱动开发介绍》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、WinCE中RTC驱动开发介绍  刚刚在GetRealTime(LPSYSTEMTIMElpst):获得当前的时间  BOOLOEMSetRealTime(LPSYSTEMTIMElpst): 设置当前的时间  BOOLOEMSetAlarmTime(LPSYSTEMTIMElpst):设置报警的时间  上面三个函数的参数都是lpst,这里介绍一下:  LPSYSTEMTIME实际上是一个指向SYSTEMTIME结构的指针,关于SYSTEMTIME,定义如下:typedefstruct_SYSTEMTIME{ GetRealTime(..)函数来获得系统的时间,

2、这种方式被称为hardode。ACHINEPlatformSoftRTC=1  我来谈谈我的看法,一般都要使用hardode,这样获得的系统时间比较准。softode获得系统时间不会很准的。  OEMSetRealTime(..)用来设置当前的时间。当SetRealTime(..)把你设置的时间写到RTC模块里面。这里要提一下,我们都知道在OEMIoControl函数里面有一个case叫IOCTL_HAL_INIT_RTC,这个case用来在初始化的时候设置实时时钟的初始值,一般在这个case里面会调用OEMSetRealTime(..)函数。参考代码如下:ca

3、seIOCTL_HAL_INIT_RTC:  //Thekernelhasdetectedacoldboot.  //Thereal-timeclockprobablyneedstobereset.  if(nInBufSize>=sizeof(SYSTEMTIME))   returnOEMSetRealTime((LPSYSTEMTIME)lpInBuf);  else   returnFALSE;  break;  OEMSetAlarmTime(..)用来设置报警时间。实现这个函数,要看你的RTC模块是否具有报警功能。具备报警功能的RTC会允许你设

4、置报警时间,当你设置了报警时间以后,RTC会比较你的报警时间和当前时间,一旦这两个时间相等了,就会产生中断。大致原理就是这样了。所以这个函数里面实际上就是实现设置一个报警时间,还有就是打开相应的RTC中断。当然在中断程序ISR中,要返回SYSINTR_RTC_ALARM。在应用程序中,我们可以通过调用CeRunAppAtTime(..)来在一个指定的时间运行一个应用程序。这个函数好像会调用OEMSetAlarmTime(..)来设置报警时间。具体没有试过。   大致就是这些内容,一般在GetRealTime(LPSYSTEMTIMElpst){  unsigne

5、dcharbuf[12];  DSG(1,(_T(:::::OEMGetRealTime:::::rn)));  if(critical_flag)    //第一次上电  {     InitializeCriticalSection(RTC_critsect);      //123下一页——感谢阅读这篇文章,..,初始化临界区     I2C_Init();                     //初始化    I2C ISL1208_Init();                //初始化ISL1208实时时钟芯片。    critical_flag

6、=0;  }    EnterCriticalSection(RTC_critsect);    memset(buf,0,sizeof(buf));  flg=I2C_Read(ISL1208,0x0,buf,6);   //读取ISL1208的时间  if(!flg)                        //I2C失败,返回错误  {     RETAILMSG(1,(_T(:::::::OEMGetRealTimeError...rn)));     returnFALSE;  }    LeaveCriticalSection(RTC_crit

7、sect);    buf[2]=0x7f;                     //清除MIL位  lpst->p;0x0f)+(buf[0]>>4)*10);  //获得当前时间,并将时间从BCD码转换为十进制   lpst->p;0x0f)+(buf[1]>>4)*10);  lpst->p;0x0f)+(buf[2]>>4)*10);  lpst->p;0x0f)+(buf[3]>>4)*10);  lpst->p;0x0f)+(buf[4]>>4)*10); 

8、 lpst->e(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。