4408|3

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于RTC在POWER DOWN情况下如何中断唤醒。 [复制链接]

本人用的是2440+wince5.0
现在想用RTC来实现定时唤醒系统。
现在问题有如下几个:
1、在rtc.c中可以看到OEMGetRealTime、OEMSetRealTime、OEMSetAlarmTime,但这个函数如何在应用程序中调用呢?
   貌似OEMSetRealTime是通过kernelIoControl来调用的。
2、如果设置好报警时间后,是不是开启这个RTC中断,就可以直接在power down状态下直接唤醒呢?还是需要设置其他什么?

最新回复

TCHAR *szAlarmApp = TEXT("\\windows\\Alarm.exe"); void SetAlarm() {         BOOL ret;         SYSTEMTIME new_SysTime, old_SysTime;         FILETIME old_FileTime, new_FileTime;         GetLocalTime(&old_SysTime);         SystemTimeToFileTime(&old_SysTime, &old_FileTime);         ULONGLONG interval = (((ULONGLONG)old_FileTime.dwHighDateTime) > 32);         new_FileTime.dwLowDateTime =  (DWORD)(interval & 0xFFFFFFFF);         FileTimeToSystemTime(&new_FileTime, &new_SysTime);         ret = CeRunAppAtTime(szAlarmApp,&new_SysTime);         if(ret)         {                 MessageBox(g_hWnd,(LPCWSTR)L"---Set Alarm succeed!\n ---\\System\\Alarm.exe will run 15 seconds later.\n\n ---If \\System does not have "Alarm.exe", it will be wrong",(LPCWSTR)L"Set Alarm",MB_OK);         }                         else                 MessageBox(g_hWnd,(LPCWSTR)L"Set Alarm failed !!!!.",(LPCWSTR)L"Error",MB_OK); } 复制代码 在应用层这么做就可以了,你可以在OEMSetAlarmTime中加些打印信息,看看是不是调用了它  详情 回复 发表于 2010-6-12 14:14
点赞 关注

回复
举报

89

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
eeworld越来越荒凉了。。。。。。
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
1.这些函数不是给应用程序用的
2.你要设置好RTC,使它定时产生中断,这个中断会唤醒系统
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

4
 

  1. TCHAR *szAlarmApp = TEXT("\\windows\\Alarm.exe");
  2. void SetAlarm()
  3. {
  4.         BOOL ret;
  5.         SYSTEMTIME new_SysTime, old_SysTime;
  6.         FILETIME old_FileTime, new_FileTime;
  7.         GetLocalTime(&old_SysTime);
  8.         SystemTimeToFileTime(&old_SysTime, &old_FileTime);
  9.         ULONGLONG interval = (((ULONGLONG)old_FileTime.dwHighDateTime) << 32) + old_FileTime.dwLowDateTime
  10.                                                    + 15*1000*10000; // 15秒以后执行应用
  11.         new_FileTime.dwHighDateTime = (DWORD)(interval >> 32);
  12.         new_FileTime.dwLowDateTime =  (DWORD)(interval & 0xFFFFFFFF);
  13.         FileTimeToSystemTime(&new_FileTime, &new_SysTime);
  14.         ret = CeRunAppAtTime(szAlarmApp,&new_SysTime);
  15.         if(ret)
  16.         {
  17.                 MessageBox(g_hWnd,(LPCWSTR)L"---Set Alarm succeed!\n ---\\System\\Alarm.exe will run 15 seconds later.\n\n ---If \\System does not have "Alarm.exe", it will be wrong",(LPCWSTR)L"Set Alarm",MB_OK);
  18.         }
  19.                
  20.         else
  21.                 MessageBox(g_hWnd,(LPCWSTR)L"Set Alarm failed !!!!.",(LPCWSTR)L"Error",MB_OK);

  22. }
复制代码


在应用层这么做就可以了,你可以在OEMSetAlarmTime中加些打印信息,看看是不是调用了它
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表