女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當前位置:首頁 > > 充電吧
[導讀]相對于STM32,6410的RTC是相當?shù)暮唵?/***************************************************************************

相對于STM32,6410的RTC是相當?shù)暮唵?




/*************************************************************************************************************
?*?文件名:	RTC.c
?*?功能:		S3C6410?RTC底層驅動函數(shù)
?*?作者:		cp1300@139.com
?*?創(chuàng)建時間:	2012年3月28日21:52
?*?最后修改時間:2012年3月28日
?*?詳細:		RTC相關底層驅動函數(shù)
*************************************************************************************************************/
#include?"system.h"
#include?"rtc.h"

Time_TypeDef?Timer;//存放全局時間

//內部靜態(tài)變量聲明
static?bool?uAutoTimeUpdate?=?FALSE;	//標記是否自動由中斷更新時間
static?bool?uSecEnd?=?FALSE;			//秒結束標志,結束后就可以更新時間了


/*************************************************************************************************************************
*函數(shù)????????:	void?RTC_Install(u8?ENABLE)
*功能????????:	RTC設置使能與失能
*參數(shù)????????:	Enable:使能時鐘設置,Disable:使能時鐘設置
*返回????????:	無
*依賴?????:?	底層宏定義
*作者????????:	cp1300@139.com
*時間?????:	20120328
*最后修改時間:	20120329
*說明?????:	平時不設置時應該設置為Disable
*************************************************************************************************************************/
void?RTC_Install(u8?ENABLE)
{
	if(ENABLE)
		RTC->CON?|=??BIT0;//RTC時鐘設置使能
	else
		RTC->CON?&=??~BIT0;//RTC時鐘設置失能
}

/*************************************************************************************************************************
*函數(shù)????????:	u8?BCD_to_DEC(u8?BCD_Code)
*功能????????:	BCD碼轉DEC碼
*參數(shù)????????:	BCD碼
*返回????????:	DEC碼
*依賴????????:?	無
*作者????????:	cp1300@139.com
*時間????????:	20120329
*最后修改時間:	20120329
*說明????????:	用于將BCD碼時間轉換為十進制時間,長度為8bit
*************************************************************************************************************************/
u8?BCD_to_DEC(u8?BCD_Code)
{
	return?((BCD_Code?>>?4)?*?10?+?(BCD_Code?&?0x0f));
}


/*************************************************************************************************************************
*函數(shù)????????:	__inline?u8?GetSec(void)
*功能????????:	獲取秒
*參數(shù)????????:	無
*返回????????:	秒
*依賴????????:?	無
*作者????????:	cp1300@139.com
*時間????????:	20120329
*最后修改時間:	20120329
*說明????????:	將BCD秒獲取后轉化為DEC秒
*************************************************************************************************************************/
__inline?u8?GetSec(void)
{
	return?(BCD_to_DEC(RTC->BCDSEC));//獲取秒
}

/*************************************************************************************************************************
*函數(shù)????????:	__inline?u8?GetMin(void)
*功能????????:	獲取分
*參數(shù)????????:	無
*返回????????:	分
*依賴????????:?	無
*作者????????:	cp1300@139.com
*時間????????:	20120329
*最后修改時間:	20120329
*說明????????:	將BCD分獲取后轉化為DEC分
*************************************************************************************************************************/
__inline?u8?GetMin(void)
{
	return?(BCD_to_DEC(RTC->BCDMIN));//獲取分
}

/*************************************************************************************************************************
*函數(shù)????????:	__inline?u8?GetHour(void)
*功能????????:	獲取時
*參數(shù)????????:	無
*返回????????:	時
*依賴????????:?	無
*作者????????:	cp1300@139.com
*時間????????:	20120329
*最后修改時間:	20120329
*說明????????:	將BCD時獲取后轉化為DEC時
*************************************************************************************************************************/
__inline?u8?GetHour(void)
{
	return?(BCD_to_DEC(RTC->BCDHOUR));//獲取時
}

/*************************************************************************************************************************
*函數(shù)????????:	__inline?u8?GetWeek(void)
*功能????????:	獲取星期
*參數(shù)????????:	無
*返回????????:	星期
*依賴????????:?	無
*作者????????:	cp1300@139.com
*時間????????:	20120329
*最后修改時間:	20120329
*說明????????:	將BCD星期獲取后轉化為DEC星期,1-7:星期一-星期日
*************************************************************************************************************************/
__inline?u8?GetWeek(void)
{
	return?(BCD_to_DEC(RTC->BCDDAY));//獲取星期
}


/*************************************************************************************************************************
*函數(shù)????????:	__inline?u8?GetDate(void)
*功能????????:	獲取日
*參數(shù)????????:	無
*返回????????:	日
*依賴????????:?	無
*作者????????:	cp1300@139.com
*時間????????:	20120329
*最后修改時間:	20120329
*說明????????:	將BCD日獲取后轉化為DEC日
*************************************************************************************************************************/
__inline?u8?GetDate(void)
{
	return?(BCD_to_DEC(RTC->BCDDATE));//獲取日
}


/*************************************************************************************************************************
*函數(shù)????????:	__inline?u8?GetMonth(void)
*功能????????:	獲取月
*參數(shù)????????:	無
*返回????????:	月
*依賴????????:?	無
*作者????????:	cp1300@139.com
*時間????????:	20120329
*最后修改時間:	20120329
*說明????????:	將BCD月獲取后轉化為DEC月
*************************************************************************************************************************/
__inline?u8?GetMonth(void)
{
	return?(BCD_to_DEC(RTC->BCDMON));//獲取月
}



/*************************************************************************************************************************
*函數(shù)????????:	__inline?u8?GetYear(void)
*功能????????:	獲取年
*參數(shù)????????:	無
*返回????????:	年
*依賴????????:?	無
*作者????????:	cp1300@139.com
*時間????????:	20120329
*最后修改時間:	20120329
*說明????????:	將BCD年獲取后轉化為DEC年
*************************************************************************************************************************/
__inline?u8?GetYear(void)
{
	return?(BCD_to_DEC(RTC->BCDYEAR));//獲取年
}



/*************************************************************************************************************************
*函數(shù)????????:	void?UpdateTimer(void)
*功能????????:	更新時間
*參數(shù)????????:	無
*返回????????:	無
*依賴????????:?	底層函數(shù)
*作者????????:	cp1300@139.com
*時間????????:	20120329
*最后修改時間:	20120329
*說明????????:	將時間放在了全局的結構Timer中
*************************************************************************************************************************/
void?UpdateTimer(void)
{
	Timer.w_year?=?2000?+?GetYear();	//更新年,起點為2000年
	Timer.w_month?=?GetMonth();	//更新月
	Timer.w_date?=?GetDate();	//更新日
	Timer.week?=?GetWeek();		//更新星期
	Timer.hour?=?GetHour();		//更新時
	Timer.min?=?GetMin();		//更新分
	Timer.sec?=?GetSec();		//更新秒
}


/*************************************************************************************************************************
*函數(shù)????????:	u8?DEC_to_BCD(u8?DEC_Code)
*功能????????:	DEC碼轉BCD碼
*參數(shù)????????:	DEC碼
*返回????????:	BCD碼
*依賴????????:?	無
*作者????????:	cp1300@139.com
*時間????????:	20120329
*最后修改時間:	20120329
*說明????????:	用于將DEC碼時間轉換為BCD時間,長度為8bit
*************************************************************************************************************************/
u8?DEC_to_BCD(u8?DEC_Code)
{
	u8?temp;
	
	if(DEC_Code?>?99)
		return?0;
	temp?=?DEC_Code?/?10;
	temp?<BCDSEC?=?DEC_to_BCD(DEC_Sec);//設置取秒
}

/*************************************************************************************************************************
*函數(shù)????????:	void?SetMin(u8?DEC_Min)
*功能????????:	設置分
*參數(shù)????????:	分
*返回????????:	無
*依賴????????:?	無
*作者????????:	cp1300@139.com
*時間????????:	20120329
*最后修改時間:	20120329
*說明????????:	設置時間,注意需要先開啟寫保護,否則無法寫入
*************************************************************************************************************************/
void?SetMin(u8?DEC_Min)
{
	RTC->BCDMIN?=?DEC_to_BCD(DEC_Min);//設置分
}

/*************************************************************************************************************************
*函數(shù)????????:	void?SetHour(u8?DEC_Hour)
*功能????????:	設置時
*參數(shù)????????:	時
*返回????????:	無
*依賴????????:?	無
*作者????????:	cp1300@139.com
*時間????????:	20120329
*最后修改時間:	20120329
*說明????????:	設置時間,注意需要先開啟寫保護,否則無法寫入
*************************************************************************************************************************/
void?SetHour(u8?DEC_Hour)
{
	RTC->BCDHOUR?=?DEC_to_BCD(DEC_Hour);//設置時
}

/*************************************************************************************************************************
*函數(shù)????????:	void?SetWeek(u8?DEC_Week)
*功能????????:	設置星期
*參數(shù)????????:	星期
*返回????????:	無
*依賴????????:?	無
*作者????????:	cp1300@139.com
*時間????????:	20120329
*最后修改時間:	20120329
*說明????????:	設置時間,注意需要先開啟寫保護,否則無法寫入
*************************************************************************************************************************/
void?SetWeek(u8?DEC_Week)
{
	RTC->BCDDAY?=?DEC_to_BCD(DEC_Week);//設置星期
}


/*************************************************************************************************************************
*函數(shù)????????:	void?SetDate(u8?DEC_Date)
*功能????????:	設置日
*參數(shù)????????:	日
*返回????????:	無
*依賴????????:?	無
*作者????????:	cp1300@139.com
*時間????????:	20120329
*最后修改時間:	20120329
*說明????????:	設置時間,注意需要先開啟寫保護,否則無法寫入
*************************************************************************************************************************/
void?SetDate(u8?DEC_Date)
{
	RTC->BCDDATE?=?DEC_to_BCD(DEC_Date);//設置日
}


/*************************************************************************************************************************
*函數(shù)????????:	void?SetMonth(u8?DEC_Month)
*功能????????:	設置月
*參數(shù)????????:	月
*返回????????:	無
*依賴????????:?	無
*作者????????:	cp1300@139.com
*時間????????:	20120329
*最后修改時間:	20120329
*說明????????:	設置時間,注意需要先開啟寫保護,否則無法寫入
*************************************************************************************************************************/
void?SetMonth(u8?DEC_Month)
{
	RTC->BCDMON?=?DEC_to_BCD(DEC_Month);//設置月
}



/*************************************************************************************************************************
*函數(shù)????????:	void?SetYear(u8?DEC_Year)
*功能????????:	設置年
*參數(shù)????????:	年
*返回????????:	無
*依賴????????:?	無
*作者????????:	cp1300@139.com
*時間????????:	20120329
*最后修改時間:	20120329
*說明????????:	設置時間,注意需要先開啟寫保護,否則無法寫入
*************************************************************************************************************************/
void?SetYear(u8?DEC_Year)
{
	RTC->BCDYEAR?=?DEC_to_BCD(DEC_Year);//設置年
}



/*************************************************************************************************************************
*函數(shù)????????:	void?InstallData(u16?Year,u8?Month,u8?Date,u8?Week)
*功能????????:	設置日期
*參數(shù)????????:	年,月,日,星期
*返回????????:	無
*依賴????????:?	底層函數(shù)
*作者????????:	cp1300@139.com
*時間????????:	20120329
*最后修改時間:	20120329
*說明????????:	設置會自動去除寫保護,年范圍為2000-2099
*************************************************************************************************************************/
void?InstallData(u16?Year,u8?Month,u8?Date,u8?Week)
{
	RTC_Install(ENABLE);	//允許更新時間
	SetYear(Year-2000);			//設置年
	SetMonth(Month);		//設置月
	SetDate(Date);			//設置日
	SetWeek(Week);			//設置星期
	RTC_Install(DISABLE);	//禁止更新時間
}


/*************************************************************************************************************************
*函數(shù)????????:	void?InstallTime(u8?Hour,u8?Min,u8?Sec)
*功能????????:	設置時間
*參數(shù)????????:	時,分,秒
*返回????????:	無
*依賴????????:?	底層函數(shù)
*作者????????:	cp1300@139.com
*時間????????:	20120329
*最后修改時間:	20120329
*說明????????:	設置會自動去除寫保護
*************************************************************************************************************************/
void?InstallTime(u8?Hour,u8?Min,u8?Sec)
{
	RTC_Install(ENABLE);	//允許更新時間
	SetHour(Hour);			//設置時
	SetMin(Min);			//設置分
	SetSec(Sec);			//設置秒
	RTC_Install(DISABLE);	//禁止更新時間
}


/*************************************************************************************************************************
*函數(shù)????????:	__inline?ClearIntP(void)
*功能????????:	清除INTP中斷標志
*參數(shù)????????:	無
*返回????????:	無
*依賴????????:?	底層函數(shù)
*作者????????:	cp1300@139.com
*時間????????:	20120331
*最后修改時間:	20120331
*說明????????:	無
*************************************************************************************************************************/
__inline?ClearIntP(void)
{
	RTC->INTP?|=?BIT0;	//寫1清除TIC中斷
}

/*************************************************************************************************************************
*函數(shù)????????:	bool?RTC_SecEnd(void)
*功能????????:	判斷秒是否到達
*參數(shù)????????:	無
*返回????????:	TRUE:秒到達;FALSE:未到達
*依賴????????:?	底層函數(shù)
*作者????????:	cp1300@139.com
*時間????????:	20120331
*最后修改時間:	20120331
*說明????????:	無
*************************************************************************************************************************/
bool?RTC_SecEnd(void)
{
	if(uAutoTimeUpdate?==?TRUE)	//開啟了自動更新時間
	{
		if(uSecEnd?==?TRUE)		//秒結束
		{
			uSecEnd?=?FALSE;	//清除標志
			return?TRUE;
		}
		else
			return?FALSE;
	}
	if(RTC->INTP?&?BIT0)	//TIC中斷標志置位
	{
		ClearIntP();		//清除中斷標志
		return?TRUE;
	}
	return?FALSE;
}



//TIC中斷服務程序,用于自動更新時間
void?__irq?Isr_RTC_InspectTick(void)
{
	uSecEnd?=?TRUE;					//秒結束時間成立
	UpdateTimer();					//更新所有時間
	ClearIntP();					//清除中斷標志
	VICInterruptEnd();	//中斷退出
}




/*************************************************************************************************************************
*函數(shù)????????:	void?RTC_Init(u8?AutoUpdate)
*功能????????:	初始化RTC
*參數(shù)????????:	EnableInt:是否開啟中斷
*返回????????:	無
*依賴????????:?	無
*作者????????:	cp1300@139.com
*時間????????:	20120329
*最后修改時間:	20120331
*說明????????:	判斷時鐘是否寫保護,如果沒,則寫開啟保護,并更新時間
*************************************************************************************************************************/
void?RTC_Init(FunctionalState?EnableInt)
{
	RTC->TICNT?=?32768-1;
	RTC->CON?=?BIT8;		//使能標記定時器,32768分頻
	RTC_Install(DISABLE);	//開啟時鐘寫保護
	UpdateTimer();			//更新所有時間
	if(EnableInt?==?ENABLE)			//使能自動更新時間
	{
		uAutoTimeUpdate?=?TRUE;//標志有效
		Set_IsrAddr(INT_RTC_TIC,(u32)Isr_RTC_InspectTick);//設置中斷向量地址
		Set_IntEnable(INT_RTC_TIC,ENABLE);//使能TIC中斷
	}
	else
	{
		uAutoTimeUpdate?=?FALSE;
		Set_IntEnable(INT_RTC_TIC,DISABLE);//關閉TIC中斷
	}
}






/*************************************************************************************************************
?*?文件名:	RTC.H
?*?功能:		S3C6410?RTC底層驅動函數(shù)
?*?作者:		陳鵬
?*?創(chuàng)建時間:	2012年3月28日21:52
?*?最后修改時間:2012年3月28日
?*?詳細:		RTC相關底層驅動函數(shù)
*************************************************************************************************************/
#ifndef?_RTC_H_
#define?_RTC_H_


?//時間結構體
typedef?struct?
{
	u8?hour;?	//小時
	u8?min;	?	//分鐘
	u8?sec;		//秒			
	//公歷日月年周
	u16?w_year;	?	//年
	u8??w_month;	//月
	u8??w_date;		//日
	u8??week;		//星期
#if?_Lunar_calendar
	//農歷日月年節(jié)氣
	u8?l_year;		//年
	u8?l_month;		//月
	u8?l_data;		//日
	u8?SolarTerms;	//農歷節(jié)氣?
#endif
}Time_TypeDef;

extern?Time_TypeDef?Timer;//存放全局時間

void?UpdateTimer(void);	//更新全部時間
void?RTC_Init(FunctionalState?EnableInt);	//初始化RTC
void?InstallData(u16?Year,u8?Month,u8?Date,u8?Week);	//設置日期
void?InstallTime(u8?Hour,u8?Min,u8?Sec);				//設置時間
bool?RTC_SecEnd(void);							//判斷秒是否到達



#endif



本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉