亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hw_rockrtc.c

?? RK27驅動
?? C
字號:
/******************************************************************/
/*   Copyright (C) 2007 ROCK-CHIPS FUZHOU . All Rights Reserved.  */
/*******************************************************************
File	:  rtc.c
Desc	:  rtc接口函數的實現
		  
Author	: huangxinyu
Date	: 2007-05-31
Notes	: 

$Log: hw_rockrtc.c,v $
Revision 1.1.1.1  2008/03/06 13:29:07  Lingzhaojun
no message

Revision 1.1  2007/12/13 07:28:18  Liaochaoyang
no message

Revision 1.1.1.1  2007/12/07 03:23:30  Lingzhaojun
導入紐漫260

Revision 1.3  2007/11/02 03:11:16  Huangzufang
增加RTC

Revision 1.2  2007/10/08 02:38:46  Lingzhaojun
添加版本自動注釋腳本

* huangxinyu	  2007-06-01	    修改RTC接口名稱
*********************************************************************/
#include "hw_include.h" 
#if (RTC_TYPE == INTERNAL_RTC)

#include "hw_rockrtc.h"
#include "hwapi_interrupt.h"
#include "hw_serial.h"
 

#define pRTCReg     ((pRTCReg_t)RTC_REG_BASE)
//static pRTCReg_t  pRTCReg = (pRTCReg_t)RTC_REG_BASE;

#define RTC_CTRL_SET_FLAG(x)     SetRegBits32(&(pRTCReg->RTC_CTRL),(x));

#define RTC_CTRL_CLR_FLAG(x)     ClrRegBits32(&(pRTCReg->RTC_CTRL),(x));

#define RTC_SET_DIVIDER(x)       MaskRegBits32(&(pRTCReg->RTC_CTRL), ~0xf8000000, (x));  

#define RTC_GET_DIVIDER()        ClrRegBits32(&(pRTCReg->RTC_CTRL), ~ BITMASK(27)); 

#define RTC_BSOS_EN()            RTC_CTRL_SET_FLAG( RTC_CTRL_BSOS )
#define RTC_BSOS_DIS()           RTC_CTRL_CLR_FLAG( RTC_CTRL_BSOS )
#define RTC_INTR_LEVEL()         RTC_CTRL_SET_FLAG( RTC_CTRL_IT )
#define RTC_INTR_EDGE()          RTC_CTRL_CLR_FLAG( RTC_CTRL_IT )
#define RTC_INTR_EN()            RTC_CTRL_SET_FLAG( RTC_CTRL_INTE )
#define RTC_INTR_DIS()           RTC_CTRL_CLR_FLAG( RTC_CTRL_INTE )
#define RTC_ALRM_EN()            RTC_CTRL_SET_FLAG( RTC_CTRL_ALRM )
#define RTC_ALRM_DIS()           RTC_CTRL_CLR_FLAG( RTC_CTRL_ALRM )
#define RTC_EN()                 RTC_CTRL_SET_FLAG( RTC_CTRL_EN )
#define RTC_DIS()                RTC_CTRL_CLR_FLAG( RTC_CTRL_EN )

#define RTC_RESET()              SetRegBits32(&(pRTCReg->RTC_CTRL),0x10000000); 

/**************************************************************************
* 函數描述: 將time結構數據轉化為time寄存器中32位數
* 入口參數: *tm -- time結構數據
* 出口參數: temp -- time寄存器中32位數
* 返回值:   無
***************************************************************************/
static UINT32 rtc_time_to_u32(const rtc_time_t *tm)
{
	UINT32	temp = 0;

	temp |= (tm->dow         << RTC_TIME_DOW);
	temp |= (tm->ten_hr      << RTC_TIME_TH );
	temp |= (tm->hr          << RTC_TIME_H  );
	temp |= (tm->ten_min     << RTC_TIME_TM );
	temp |= (tm->min         << RTC_TIME_M  );
	temp |= (tm->ten_sec     << RTC_TIME_TS );
	temp |= (tm->sec         << RTC_TIME_S  );
	temp |= (tm->sos         << RTC_TIME_SOS);

	return temp;
}

/**************************************************************************
* 函數描述: 將date結構數據轉化為date寄存器中32位數
* 入口參數: *dt -- date結構數據
* 出口參數: temp -- date寄存器中32位數
* 返回值:   無
***************************************************************************/
static UINT32 rtc_date_to_u32(const rtc_date_t *dt)
{
	UINT32	temp = 0;

	temp |= (dt->day      << RTC_DATE_D );
	temp |= (dt->ten_day  << RTC_DATE_TD);
	temp |= (dt->mth      << RTC_DATE_M );
	temp |= (dt->ten_mth  << RTC_DATE_TM);
	temp |= (dt->yr       << RTC_DATE_Y );
	temp |= (dt->ten_yr   << RTC_DATE_TY);
	temp |= (dt->cent     << RTC_DATE_C );
	temp |= (dt->ten_cent << RTC_DATE_TC);

	return temp;
}

/**************************************************************************
* 函數描述: 將time寄存器中32位數轉化為time結構數據
* 入口參數: temp -- time寄存器中32位數
* 出口參數: *tm -- time結構數據
* 返回值:   無
***************************************************************************/
static void rtc_u32_to_time(rtc_time_t *tm, const UINT32 temp)
{
	tm->sos      = (temp >> RTC_TIME_SOS) & BITMASK(4);
	tm->sec      = (temp >> RTC_TIME_S)   & BITMASK(4);
	tm->ten_sec  = (temp >> RTC_TIME_TS)  & BITMASK(3);
	tm->min      = (temp >> RTC_TIME_M)   & BITMASK(4);
	tm->ten_min  = (temp >> RTC_TIME_TM)  & BITMASK(3);
	tm->hr       = (temp >> RTC_TIME_H)   & BITMASK(4);
	tm->ten_hr   = (temp >> RTC_TIME_TH)  & BITMASK(2);
	tm->dow      = (temp >> RTC_TIME_DOW) & BITMASK(3);
}

/**************************************************************************
* 函數描述: 將date寄存器中32位數轉化為date結構數據
* 入口參數: temp -- date寄存器中32位數
* 出口參數: *dt -- date結構數據
* 返回值:   無
***************************************************************************/
static void rtc_u32_to_date(rtc_date_t *dt, const data_t temp)
{
	dt->day      = (temp >> RTC_DATE_D)   & BITMASK(4);
	dt->ten_day  = (temp >> RTC_DATE_TD)  & BITMASK(2);
	dt->mth      = (temp >> RTC_DATE_M)   & BITMASK(4);
	dt->ten_mth  = (temp >> RTC_DATE_TM)  & BITMASK(1);
	dt->yr       = (temp >> RTC_DATE_Y)   & BITMASK(4);
	dt->ten_yr   = (temp >> RTC_DATE_TY)  & BITMASK(4);
	dt->cent     = (temp >> RTC_DATE_C)   & BITMASK(4);
	dt->ten_cent = (temp >> RTC_DATE_TC)  & BITMASK(4);
}

/**************************************************************************
* 函數描述: 初始化RTC
* 入口參數: 無
* 出口參數: 無
* 返回值:   TRUE -- 初始化成功
*           FALSE -- 初始化失敗
***************************************************************************/
BOOL RTC_PowerOnInit(void)
{
  	RTC_RESET();
  	RTC_SET_DIVIDER(RTC_DIVIDER);
	RTC_EN();                    /* add by huangzf */
 
  	return TRUE;
}

/**************************************************************************
* 函數描述: 設置RTC時間
* 入口參數: RTC的時間結構(/時/分/秒/星期)
* 出口參數: 無
* 返回值:   無
***************************************************************************/
void RTC_Set_Time(rtc_date_time_t *rtc)
{
   UINT32 temp;
   rtc_time_t tm;
   tm.ten_hr = (rtc->hour)/10;
   tm.hr = (rtc->hour) - (tm.ten_hr*10);
   tm.ten_min = (rtc->minute)/10;
   tm.min = (rtc->minute) - (tm.ten_min*10);
   tm.ten_sec = (rtc->sec)/10;
   tm.sec = (rtc->sec) - (tm.ten_sec*10);
   tm.sos = 0 ;
   tm.dow = rtc->week;
   temp = rtc_time_to_u32(&tm);
   WriteReg32(&(pRTCReg->RTC_TIME), temp);
}

/**************************************************************************
* 函數描述: 設置RTC日期
* 入口參數: RTC的日期結構(年/月/日)
* 出口參數: 無
* 返回值:   無
***************************************************************************/
void RTC_Set_Date(rtc_date_time_t *rtc)
{
   UINT32 temp;
   rtc_date_t dt;
   dt.ten_cent = (rtc->year)/1000;
   dt.cent = ((rtc->year)/100)-(dt.ten_cent*10) ;
   dt.ten_yr = ((rtc->year)/10) - (dt.ten_cent*100) - (dt.cent*10);
   dt.yr = (rtc->year) - (dt.ten_cent*1000) - (dt.cent*100) -(dt.ten_yr*10);
   dt.ten_mth = (rtc->mon)/10 ;
   dt.mth = (rtc->mon) - (dt.ten_mth*10);
   dt.ten_day = (rtc->day)/10;
   dt.day = (rtc->day) - (dt.ten_day*10) ;
   temp = rtc_date_to_u32(&dt);
   WriteReg32(&(pRTCReg->RTC_DATE),temp);
}

/**************************************************************************
* 函數描述: 得到RTC時間
* 入口參數: 無
* 出口參數: RTC的時間結構數據(/時/分/秒/星期)
* 返回值:   無
***************************************************************************/
void RTC_Get_Time(rtc_date_time_t *rtc)
{
   rtc_time_t tm;
   UINT32  temp = ReadReg32(&(pRTCReg->RTC_TIME));
   rtc_u32_to_time(&tm, temp);
   rtc->hour = tm.ten_hr*10 + tm.hr;
   rtc->minute = tm.ten_min*10 + tm.min;
   rtc->sec= tm.ten_sec*10 + tm.sec;
   rtc->week = tm.dow;
}

/**************************************************************************
* 函數描述: 得到RTC日期
* 入口參數: 無
* 出口參數: RTC的日期結構數據(年/月/日)
* 返回值:   無
***************************************************************************/
void RTC_Get_Date(rtc_date_time_t *rtc)
{
   rtc_date_t dt;
   UINT32  temp = ReadReg32(&(pRTCReg->RTC_DATE));
   rtc_u32_to_date(&dt, temp);
   rtc->year = dt.ten_cent*1000 + dt.cent*100 + dt.ten_yr*10 + dt.yr;
   rtc->mon = dt.ten_mth*10 + dt.mth;
   rtc->day= dt.ten_day*10 + dt.day;
}

/**************************************************************************
* 函數描述: 設置RTC值
* 入口參數: RTC的年/月/日/時/分/秒/星期 結構數據
* 出口參數: 無
* 返回值:   0 -- 設置成功
*           非0 -- 設置失敗
***************************************************************************/
int RTC_Set(rtc_date_time_t *rtc)
{ 
   RTC_Set_Time(rtc);
   RTC_Set_Date(rtc);
   RTC_EN();
   return 0;
}

/**************************************************************************
* 函數描述: 讀取RTC值
* 入口參數: 無
* 出口參數: RTC的年/月/日/時/分/秒/星期 結構數據
* 返回值:   0 -- 讀取成功
*           非0 -- 讀取失敗
***************************************************************************/
int RTC_Read(rtc_date_time_t *rtc)
{
   RTC_Get_Time(rtc);
   RTC_Get_Date(rtc);
   return 0;
}


/**************************************************************************
* 函數描述: 設置鬧鐘
* 入口參數: 無
* 出口參數: 鬧鐘的星期或日/時/分/星期或日選擇 結構數據,鬧鐘通道
* 返回值:   1 -- 成功
*           0 -- 失敗
***************************************************************************/
int ALARM_Set(alarm_time_t * tm,INT8U ch)
{
   return 0;
}

/**************************************************************************
* 函數描述: 讀取鬧鐘
* 入口參數: 無
* 出口參數: 鬧鐘的星期或日/時/分/星期或日選擇 結構數據,鬧鐘通道
* 返回值:   1 -- 讀取成功
*           0 -- 讀取失敗
***************************************************************************/
int ALARM_Get(alarm_time_t * tm,INT8U ch)
{
   return 0;
}

/**************************************************************************
* 函數描述: 打開鬧鐘
* 入口參數: 無
* 出口參數: 鬧鐘通道
* 返回值:   0 -- 讀取成功
*           非0 -- 讀取失敗
***************************************************************************/
int ALARM_Open(INT8U ch)
{
   return 0;
}

/**************************************************************************
* 函數描述: 關閉鬧鐘
* 入口參數: 無
* 出口參數: 鬧鐘通道
* 返回值:   1 -- 讀取成功
*           0 -- 讀取失敗
***************************************************************************/
int ALARM_Close(INT8U ch)
{
   return 0;
}

/**************************************************************************
* 函數描述: 清除鬧鐘中斷
* 入口參數: 無
* 出口參數: 鬧鐘通道
* 返回值:   0 -- 讀取成功
*           非0 -- 讀取失敗
***************************************************************************/
int ALARM_Clear(INT8U ch)
{
   return 1;
}


/**************************************************************************
* 函數描述: 讀鬧鐘IE狀態
* 入口參數: 無
* 出口參數: 鬧鐘通道
* 返回值:   0 -- 關
*           1 -- 開
***************************************************************************/
int ALARM_GetIESta(INT8U ch)
{
   return 0;
}

/**************************************************************************
* 函數描述: 讀鬧鐘IF狀態
* 入口參數: 無
* 出口參數: 鬧鐘通道
* 返回值:   0 -- 關
*           1 -- 開
***************************************************************************/
int ALARM_GetIFSta(INT8U ch)
{
   return 0;
}
/**************************************************************************
* 函數描述: 方波輸出頻率設置
* 入口參數: 無
* 出口參數: 鬧鐘通道
* 返回值:   0 -- 讀取成功
*           非0 -- 讀取失敗
***************************************************************************/
void RTC_FQW_FreqSet(INT8U freq_mode)
{

}
/**************************************************************************
* 函數描述: 方波輸出頻率開
* 入口參數: 無
* 出口參數: 無
* 返回值:   
***************************************************************************/
void RTC_FQW_Enable(void)
{

}

/**************************************************************************
* 函數描述: 方波輸出頻率關
* 入口參數: 無
* 出口參數: 無
* 返回值:   
***************************************************************************/
void RTC_FQW_Disable(void)
{

}
/**************************************************************************
* 函數描述: 檢測掉點狀態
* 入口參數: 無
* 出口參數: 鬧鐘通道
* 返回值:   0 -- 正常
*           1 -- 掉點
***************************************************************************/
int RTC_GetVL(void)
{
   return 0;  
}
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩和欧美一区二区三区| 老司机精品视频导航| 婷婷开心激情综合| 另类小说一区二区三区| aaa欧美大片| 日韩女优av电影| 亚洲伦理在线精品| 久久99精品久久久久久| 欧美性色黄大片| 国产日韩亚洲欧美综合| 亚洲一二三专区| 国产99久久久精品| 日韩三区在线观看| 亚洲在线视频免费观看| 成人少妇影院yyyy| 久久综合九色综合欧美亚洲| 亚洲国产欧美日韩另类综合 | 图片区日韩欧美亚洲| 成人综合在线视频| 久久久综合视频| 麻豆视频一区二区| 欧美日韩成人高清| 一级精品视频在线观看宜春院| 成人免费毛片高清视频| 久久久无码精品亚洲日韩按摩| 日本伊人午夜精品| 欧美三级在线看| 亚洲色欲色欲www| 成人动漫一区二区在线| 国产女人18水真多18精品一级做| 裸体歌舞表演一区二区| 日韩三级视频中文字幕| 蜜臀久久99精品久久久久宅男 | 不卡的av网站| 国产农村妇女精品| 成人黄色免费短视频| 亚洲国产精品99久久久久久久久| 精品在线观看视频| 久久久精品国产免费观看同学| 麻豆精品一区二区综合av| 51精品视频一区二区三区| 天堂蜜桃一区二区三区| 在线成人午夜影院| 美国毛片一区二区| 精品国产凹凸成av人导航| 国产综合久久久久久鬼色| 久久人人超碰精品| 成人黄色小视频在线观看| 亚洲免费高清视频在线| 欧美午夜宅男影院| 日产欧产美韩系列久久99| 欧美一二三四区在线| 激情综合色综合久久| 国产天堂亚洲国产碰碰| 99久久久久久99| 亚洲一区二区三区四区在线| 在线综合+亚洲+欧美中文字幕| 免费看黄色91| 国产精品污污网站在线观看| 91免费看`日韩一区二区| 亚洲成人在线观看视频| 日韩欧美国产电影| 成人免费av网站| 一区二区在线观看视频在线观看| 欧美日韩一二区| 国产乱色国产精品免费视频| 日韩美女视频19| 欧美一区永久视频免费观看| 国产高清不卡一区二区| 亚洲天堂成人在线观看| 3d动漫精品啪啪一区二区竹菊| 国产乱码精品一区二区三区忘忧草 | 91亚洲国产成人精品一区二三 | 亚洲乱码国产乱码精品精的特点| 欧美日韩高清在线播放| 国产成人av资源| 午夜欧美一区二区三区在线播放 | 欧美日韩国产美| 国产不卡一区视频| 午夜精品久久久久久久久久久| 久久这里只有精品首页| 欧美色图在线观看| aaa欧美日韩| 激情小说欧美图片| 香蕉成人啪国产精品视频综合网| 久久久三级国产网站| 欧美日韩一二区| 色综合中文字幕| 国产精品中文有码| 日本视频在线一区| 亚洲日本丝袜连裤袜办公室| 欧美成人高清电影在线| 欧洲av一区二区嗯嗯嗯啊| 国产成人精品www牛牛影视| 麻豆精品一二三| 亚洲国产精品久久久久秋霞影院| 欧美激情综合在线| 精品裸体舞一区二区三区| 欧美色区777第一页| a亚洲天堂av| 丁香五精品蜜臀久久久久99网站| 久久国产婷婷国产香蕉| 亚洲成av人影院| 亚洲一区二区成人在线观看| 亚洲人成精品久久久久| 国产精品欧美一级免费| 久久久天堂av| 国产日韩精品视频一区| 久久嫩草精品久久久精品| 91.com在线观看| 欧美另类变人与禽xxxxx| 欧美性猛交一区二区三区精品| caoporn国产精品| 不卡的av在线| 成人sese在线| 99r国产精品| 91麻豆产精品久久久久久| 92国产精品观看| www.99精品| 色综合久久中文字幕综合网| 99r精品视频| 欧美私人免费视频| 精品1区2区3区| 欧美一区二区三区小说| 日韩欧美在线一区二区三区| 欧美日韩久久一区| 欧美久久久久久久久中文字幕| 欧美群妇大交群的观看方式| 制服.丝袜.亚洲.中文.综合| 91精品免费在线| 精品少妇一区二区三区在线视频| 精品久久免费看| 久久精品视频网| 国产精品全国免费观看高清 | 久久久国产综合精品女国产盗摄| 精品欧美久久久| 国产欧美一区二区三区鸳鸯浴| 亚洲国产精品国自产拍av| 亚洲嫩草精品久久| 亚洲成av人片在线| 精品写真视频在线观看| 国产a区久久久| 在线日韩国产精品| 91精品国产品国语在线不卡| 欧美精品一区二区在线观看| 国产精品久久久久久久裸模| 一级日本不卡的影视| 麻豆极品一区二区三区| 国产成人夜色高潮福利影视| 91久久精品一区二区三| 欧美妇女性影城| 久久精品一二三| 亚洲精品免费在线播放| 麻豆精品一区二区av白丝在线| 波多野结衣91| 欧美美女直播网站| 国产日产欧美一区| 午夜精品成人在线视频| 国产精品一区二区x88av| 在线视频欧美精品| 久久综合九色综合欧美98| 亚洲国产日韩a在线播放性色| 国产乱码精品一区二区三区忘忧草| 99国产精品国产精品毛片| 日韩欧美在线网站| 亚洲日本一区二区| 国产精品一卡二| 欧美乱熟臀69xxxxxx| 国产精品卡一卡二| 蜜臀91精品一区二区三区| 91美女在线看| 国产色产综合色产在线视频| 亚洲成人中文在线| 91免费版pro下载短视频| 日韩美女视频在线| 亚洲一区二区三区四区在线观看 | 欧美在线一二三四区| 久久九九影视网| 日韩av网站在线观看| 色呦呦网站一区| 国产精品久久久99| 韩国成人精品a∨在线观看| 7777精品伊人久久久大香线蕉超级流畅 | 日韩毛片视频在线看| 国产美女主播视频一区| 91精品国产日韩91久久久久久| 亚洲摸摸操操av| av爱爱亚洲一区| 久久久一区二区三区捆绑**| 免费成人在线网站| 欧美色精品在线视频| 亚洲欧美一区二区三区极速播放 | 欧美视频一区二| 亚洲黄色在线视频| 91网站最新网址| 国产精品久久夜| 成人av高清在线| 国产精品女同互慰在线看| 欧美亚洲动漫精品| 有坂深雪av一区二区精品|