<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > S3C2440 Windows CE的RTC模塊驅動(dòng)設計與實(shí)現

S3C2440 Windows CE的RTC模塊驅動(dòng)設計與實(shí)現

作者: 時(shí)間:2013-03-30 來(lái)源:網(wǎng)絡(luò ) 收藏

  

下面給出OEMGetRealTime()的源代碼僅供參考。
  OEMGetRealTime(LPSYSTEMTIME lpst)
  {
  volatile RTCreg *s2440RTC;
  s2440RTC = (RTCreg *)RTC_BASE;
  //RETAILMSG(1,(_T("OEMGetRealTime ")));
  //使能RTC
  s2440RTC->rRTCCON =0x1;
  lpst->wMilliseconds=0;
  lpst->wSecond= FROM_BCD(s2440RTC->rBCDSEC0x7f);
  lpst->wMinute= FROM_BCD(s2440RTC->rBCDMIN0x7f);
  lpst->wHour= FROM_BCD(s2440RTC->rBCDHOUR0x3f);
  lpst->wDayOfWeek=(s2440RTC->rBCDDATE-1);
  lpst->wDay= FROM_BCD(s2440RTC->rBCDDAY0x3f);
  lpst->wMonth=FROM_BCD(s2440RTC->rBCDMON0x1f);
  //lpst->wYear=(2000+s2440RTC->rBCDYEAR);
  lpst->wYear=FROM_BCD(s2440RTC->rBCDYEAR)+2000;
  if(lpst->wSecond==0)
  {
  lpst->wSecond=FROM_BCD(s2440RTC->rBCDSEC0x7f);
  lpst->wMinute=FROM_BCD(s2440RTC->rBCDMIN0x7f);
  lpst->wHour=FROM_BCD(s2440RTC->rBCDHOUR0x3f);
  lpst->wDayOfWeek=(s2440RTC->rBCDDATE-1);
  lpst->wDay=FROM_BCD(s2440RTC->rBCDDAY0x3f);
  lpst->wMonth=FROM_BCD(s240RTC->rBCDMON0x1f);
  lpst->wYear=(2000+s240RTC->rBCDYEAR);
  }
  //禁止RTC
  s2440RTC->rRTCCON=0;
  return TRUE;
  }
  3.3 系統I/O
  OAL代碼層提供了與內核交互的函數,通過(guò)它內核可以獲得硬件平臺的信息 。在OAL層中,完成此功能的函數為      OEMIOcontrol()。其函數原型如下:
  Bool OEMIoContol(……)
  {switch(dwIoContro1)
  {case IOCTL_HAL_INIT_RTC;
  if(nInBufSize>= sizeof(SYSTEMTIME))
  return OEMSetRealTime((LPSYSTEMTIME)lpInBuf);
  else
  return FALSE;
  break;
  ……
  default: return FALSE;
  }
  

WinCE每次啟動(dòng)時(shí)都會(huì )由KernelIoContrl()函數調用OEMIOcontrol(),完成底層硬件信息的讀取,其中參數dwIoControl為內核與OAL通信的控制代碼,通過(guò)它可以完成硬件信息的讀取??刂拼a一般都是微軟定義好的,其中定義的控制代碼為IOCTL_HAL_INIT_RTC,通過(guò)它內核可以完成底層的初始化。
  

nInBufSize是由lpInBuf(指針)指向的緩沖區的大小,緩沖區是按字節大小計算的。SYSTEMTIME是WinCE內部定義的一個(gè)表示時(shí)間的結構體,LPSYSTEMTIME為指向此結構體的指針。SYSTEMTIME結構體原型如下,原型中定義了字格式的年、月、星期、日、時(shí)、分、秒、毫秒。
  typedef struct _SYSTEMTIME
  {
  WORD wYear;
  WORD wMonth;
  WORD wDayOfWeek;
  WORD wDay;
  WORD wHour;
  WORD wMinute;
  WORD wSeeond;
  WORD wMilliseconds;
  }SYSTEMTIME;
  
  在本設計中,RTC的時(shí)間分辨率為“秒”,這是因為所能提供的最小時(shí)間基準就是“秒”。用戶(hù)可以根據實(shí)際需求編寫(xiě)系統I/O下的RTC初始化代碼,也可以禁止這部分代碼。若WinCE從OAL層讀不到時(shí)鐘參數的話(huà),它會(huì )以系統的默認時(shí)間值來(lái)初始化SYSTEMTIME結構體。

  4 結束語(yǔ)
  
  當前比較流行的ARM嵌入式處理器,如Samsung的S3C系列、Intel的Xscale系列、Motorola的龍珠系列等幾乎都內嵌有RTC模塊。使許多嵌入式產(chǎn)品如手機、PDA等的時(shí)間顯示豐富多彩,如具有顯示陽(yáng)歷、陰歷、萬(wàn)年歷等功能。本文給出了RTC模塊的WinCE驅動(dòng)程序實(shí)現,基于本設計可以進(jìn)一步開(kāi)發(fā)如時(shí)鐘界面等時(shí)鐘應用功能,以滿(mǎn)足多姿多彩的嵌入式系統對于時(shí)鐘功能的應用需求。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: S3C2440 WindowsCE RTC模塊

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>