91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RTC實時時鐘重用外設(shè)驅(qū)動代碼

UtFs_Zlgmcu7890 ? 來源:未知 ? 作者:易水寒 ? 2017-12-22 14:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

周立功教授新書《面向AMetal框架與接口編程(上)》,對AMetal框架進(jìn)行了詳細(xì)介紹,通過閱讀這本書,你可以學(xué)到高度復(fù)用的軟件設(shè)計原則和面向接口編程的開發(fā)思想,聚焦自己的“核心域”,改變自己的編程思維,實現(xiàn)企業(yè)和個人的共同進(jìn)步。

第六章為重用外設(shè)驅(qū)動代碼,本文內(nèi)容包含6.3 RTC 實時時鐘前四個小節(jié):

6.3.1 PCF85063

6.3.2 RTC 通用接口

6.3.3 鬧鐘通用接口

6.3.4 系統(tǒng)時間

6.3.5 特殊功能控制接口

6.3 RTC 實時時鐘

本節(jié)將以PCF85063 為例,詳細(xì)介紹RTC 通用接口,鬧鐘通用接口等。在本節(jié)的最后兩小節(jié),將介紹另外兩款RTC 芯片:RX8025T 和DS1302,雖然它們與PCF85063 存在差異,但卻可以使用同樣的通用接口對其進(jìn)行操作,實現(xiàn)了RTC 應(yīng)用的跨平臺復(fù)用。

>>>6.3.1 PCF85063

1. 器件簡介

PCF85063 是一款低功耗實時時鐘/日歷芯片,它提供了實時時間的設(shè)置與獲取、鬧鐘、可編程時鐘輸出、定時器/報警/半分鐘/分鐘中斷輸出等功能。

NXP 半導(dǎo)體公司的PCF85063 引腳封裝詳見圖6.4,其中的SCL 和SDA 為I2C接口引腳,VDD 和VSS 分別為電源和地;OSCI 和OSCO 為32.768KHz 的晶振連接引腳,作為PCF85063 的時鐘源;CLKOUT 為時鐘信號輸出,供其它外部電路使用;INT 為中斷引腳,主要用于鬧鐘等功能。

RTC實時時鐘重用外設(shè)驅(qū)動代碼

圖6.4 PCF85063 引腳定義

PCF85063 的7 位I2C從機(jī)地址為0x51,MicroPort-RTC 模塊通過MicroPort 接口與AM824-Core 相連,SCL 和SDA 分別與PIO0_16 和PIO0_18 連接,詳見圖6.5。若焊接R1,則INT 與PIO0_1 相連;若焊接R3,則INT 與PIO0_8 相連;若焊接R2,則CLKOUT 與PIO0_24 相連。

RTC實時時鐘重用外設(shè)驅(qū)動代碼

圖6.5 PCF85063 電路原理

2. 器件初始化

在使用PCF85063 前,必須完成PCF85063 的初始化操作,以獲取對應(yīng)的操作句柄,進(jìn)而才能使用PCF85063 的各種功能,初始化函數(shù)原型(am_pcf85063.h)為:

該函數(shù)意在獲取PCF85063 器件的實例句柄,其中,p_dev 為指向am_pcf85063_dev_t類型實例的指針,int_pin 作為實例信息,指定PCF85063 的INT 與MCU 的連接引腳號。

(1)實例

定義am_pcf85063_dev_t 類型(am_pcf85063.h)實例如下:

其中,g_pcf85063_dev 為用戶自定義的實例,其地址作為p_dev 的實參傳遞。

(2)實例信息

實例信息僅一個中斷引腳信息,用于指定PCF85063 的INT 與MCU 的引腳號相連,便于使用鬧鐘等功能。假設(shè)使用PIO0_1,則PIO0_1 作為int_pin 的實參傳遞。

(3)I2C句柄i2c_handle

以I2C1 為例,其實例初始化函數(shù)am_lpc82x_i2c1_inst_init ()的返回值將作為實參傳遞給i2c_handle。即:

(4)實例句柄

PCF85063 初始化函數(shù)am_pcf85063_init ()的返回值,作為實參傳遞給其它功能接口函數(shù)的第一個參數(shù)(handle)。am_pcf85063_handle_t 類型的定義(am_pcf85063.h)如下:

若返回值為NULL,說明初始化失?。蝗舴祷刂挡粸镹ULL,說明返回值handle 有效。

基于模塊化編程思想,將初始化相關(guān)的實例、實例信息等的定義存放到對應(yīng)的配置文件中,通過頭文件引出實例初始化函數(shù)接口,源文件和頭文件的程序范例分別詳見程序清單6.39 和程序清單6.40。

程序清單6.39 實例初始化函數(shù)實現(xiàn)(am_hwconf_pcf85063.c)

RTC實時時鐘重用外設(shè)驅(qū)動代碼

程序清單6.40 實例初始化函數(shù)聲明(am_hwconf_pcf85063.h)

RTC實時時鐘重用外設(shè)驅(qū)動代碼

后續(xù)只需要使用無參數(shù)的實例初始化函數(shù),即可獲取到PCF85063 的實例句柄。即:

>>>6.3.2 RTC 通用接口

PCF85063 作為一種典型的RTC 器件,可以使用RTC(Real-Time Clock)通用接口設(shè)置和獲取時間,其函數(shù)原型詳見表6.10。

表6.10 RTC 通用接口函數(shù)(am_rtc.h)

RTC實時時鐘重用外設(shè)驅(qū)動代碼

可見,這些接口函數(shù)的第一個參數(shù)均為am_rtc_handle_t 類型的RTC 句柄,顯然,其并非前文通過PCF85063 實例初始化函數(shù)獲取的am_pcf85063_handle_t 類型的句柄。

RTC 時間設(shè)置和獲取只是PCF85063 提供的一個主要功能,PCF85063 還能提供鬧鐘等功能。PCF85063 的驅(qū)動提供了相應(yīng)的接口用于獲取PCF85063 的RTC 句柄,以便用戶通過RTC 通用接口操作PCF85063,其函數(shù)原型為:

該函數(shù)意在獲取RTC 句柄,其中,PCF85063 實例的句柄(pcf85063_handle)作為實參傳遞給handle,p_rtc 為指向am_rtc_serv_t 類型實例的指針,無實例信息。定義am_rtc_serv_t類型(am_rtc.h)實例如下:

其中,g_pcf85063_rtc 為用戶自定義的實例,其地址作為p_rtc 的實參傳遞。

基于模塊化編程思想,將初始化相關(guān)的實例定義存放到對應(yīng)的配置文件中,通過頭文件引出實例初始化函數(shù)接口,源文件和頭文件分別詳見程序清單6.41 和程序清單6.42。

程序清單6.41 新增PCF85063 的RTC 實例初始化函數(shù)(am_hwconf_pcf85063.c)

RTC實時時鐘重用外設(shè)驅(qū)動代碼

程序清單6.42 am_hwconf_pcf85063.h 文件內(nèi)容更新(1)

RTC實時時鐘重用外設(shè)驅(qū)動代碼

后續(xù)只需要使用無參數(shù)的RTC 實例初始化函數(shù),即可獲取RTC 實例句柄。即:

1. 設(shè)置時間

該函數(shù)用于設(shè)置RTC 器件的當(dāng)前時間值,其函數(shù)原型為:

其中,handle 為RTC 實例句柄,p_tm 為指向細(xì)分時間(待設(shè)置的時間值)的指針。返回AM_OK,表示設(shè)置成功,反之失敗。其類型am_tm_t 是在am_time.h 中定義的細(xì)分時間結(jié)構(gòu)體類型,用于表示年/月/日/時/分/秒等信息。即:

RTC實時時鐘重用外設(shè)驅(qū)動代碼

其中,tm_mon 表示月份,分別對應(yīng)1~12 月。tm_year 表示年,1900 年至今的年數(shù),其實際年為該值加上1900。tm_wday;表示星期,0~6 分別對應(yīng)星期日~星期六。tm_yday 表示1 月1 日以來的的天數(shù)(0~365),0 對應(yīng)1 月1 日。tm_isdst 表示夏令時,夏季將調(diào)快1 小時。如果不用,則設(shè)置為-1。設(shè)置年/月/日/時/分/秒的值詳見程序清單6.43,星期等附加的一些信息無需用戶設(shè)置,主要便于在獲取時間時得到更多的信息。

程序清單6.43 設(shè)置時間范例程序

RTC實時時鐘重用外設(shè)驅(qū)動代碼

2. 獲取時間

該函數(shù)用于獲取當(dāng)前時間值,其函數(shù)原型為:

其中,handle 為RTC 實例句柄,p_tm 為指向細(xì)分時間的指針,用于獲取細(xì)分時間。返回AM_OK,表示獲取成功,反之失敗,范例程序詳見程序清單6.44。

程序清單6.44 獲取細(xì)分時間范例程序

基于RTC 通用接口,可以編寫一個通用的時間顯示應(yīng)用程序:每隔1s 通過調(diào)試串口打印當(dāng)前的時間值。應(yīng)用程序的實現(xiàn)和接口聲明分別詳見程序清單6.45 和程序清單6.46。

程序清單6.45 RTC 時間顯示應(yīng)用程序(app_rtc_time_show.c)

程序清單6.46 RTC 時間顯示接口聲明(app_rtc_time_show.h)

為了啟動該應(yīng)用程序,必須提供一個RTC 實例句柄以指定設(shè)置時間和獲取時間的RTC對象,若使用PCF85063,則RTC 實例句柄可通過實例初始化函數(shù)am_pcf85063_rtc_inst_init()獲得,范例程序詳見程序清單6.47。

程序清單6.47 啟動RTC 應(yīng)用程序(基于PCF85063)

>>>6.3.3 鬧鐘通用接口

PCF85063 除提供基本的RTC 功能外,還可以提供鬧鐘功能,可以使用鬧鐘通用接口設(shè)置使用鬧鐘,其函數(shù)原型詳見表6.11。

表6.11 鬧鐘通用接口函數(shù)(am_alarm_clk.h)

由此可見,這些接口函數(shù)的第一個參數(shù)均為am_alarm_clk_handle_t 類型的鬧鐘句柄,PCF85063 的驅(qū)動提供了相應(yīng)的接口用于獲取PCF85063 的鬧鐘句柄,以便用戶通過鬧鐘通用接口操作PCF85063,其函數(shù)原型為:

該函數(shù)意在獲取鬧鐘句柄,其中,PCF85063 實例的句柄(pcf85063_handle)作為實參傳遞給handle,p_alarm_clk 為指向am_alarm_clk_serv_t 類型實例的指針,無實例信息。定義am_alarm_clk_serv_t 類型(am_alarm_clk.h)實例如下:

其中,g_pcf85063_alarm_clk 為用戶自定義的實例,其地址作為p_alarm_clk 的實參傳遞。

基于模塊化編程思想,將初始化相關(guān)的實例定義存放到對應(yīng)的配置文件中,通過頭文件引出實例初始化函數(shù)接口,源文件和頭文件分別詳見程序清單6.48 和程序清單6.49。

程序清單6.48 新增PCF85063 的鬧鐘實例初始化函數(shù)(am_hwconf_pcf85063.c)

程序清單6.49 am_hwconf_pcf85063.h 文件內(nèi)容更新(2)

后續(xù)只需要使用無參數(shù)的鬧鐘實例初始化函數(shù),即可獲取鬧鐘實例句柄。即:

1. 設(shè)置鬧鐘時間

該函數(shù)用于設(shè)置鬧鐘時間,其函數(shù)原型為:

其中,handle 為鬧鐘實例句柄,p_tm 為指向鬧鐘時間(待設(shè)置的時間值)的指針。返回AM_OK,表示設(shè)置成功,反之失敗。類型am_alarm_clk_tm_t 是在am_alarm_clk.h 中定義的鬧鐘時間結(jié)構(gòu)體類型,用于表示鬧鐘時間信息。即:

其中,min 表示鬧鐘時間的分,hour 鬧鐘時間的小時,wdays 用于指定鬧鐘在周幾有效,可以是周一至周日的任意一天或幾天。其可用的值已經(jīng)使用宏進(jìn)行了定義,比如,AM_ALARM_CLK_SUNDAY 位星期日有效,AM_ALARM_CLK_MONDAY 為星期一有效,AM_ALARM_CLK_TUESDAY 為星期二有效,AM_ALARM_CLK_WEDNESDAY 為星期三有效,AM_ALARM_CLK_THURSDAY 為星期四有效,M_ALARM_CLK_FRIDAY 為星期五有效,AM_ALARM_CLK_SATURDAY 為星期六有效,AM_ALARM_CLK_WORKDAY為工作日有效,AM_ALARM_CLK_EVERYDAY 為每天均有效。

若需鬧鐘在多天同時有效,則可以將多個宏值使用“|”連接起來,比如,要使鬧鐘在星期一和星期二有效,則其值為:

AM_ALARM_CLK_MONDAY | AM_ALARM_CLK_TUESDAY。

若需鬧鐘在星期一至星期五有效(工作日有效),則其值為:

AM_ALARM_CLK_WORKDAY。

若需鬧鐘在每一天均有效,這其值為AM_ALARM_CLK_EVERYDAY,設(shè)置鬧鐘的范例程序詳見程序清單6.50。

程序清單6.50 設(shè)置鬧鐘時間的范例程序

2. 設(shè)置鬧鐘回調(diào)函數(shù)

PCF85063 可以在指定的時間產(chǎn)生鬧鐘事件,當(dāng)事件發(fā)生時,由于需要通知應(yīng)用程序,因此需要由應(yīng)用程序設(shè)置一個回調(diào)函數(shù),在鬧鐘事件發(fā)生時自動調(diào)用應(yīng)用程序設(shè)置的回調(diào)函數(shù)。設(shè)置鬧鐘回調(diào)函數(shù)原型為:

其中,handle 為鬧鐘實例句柄,pfn_callback 為指向?qū)嶋H回調(diào)函數(shù)的指針,p_arg 為回調(diào)函數(shù)的參數(shù)。若返回AM_OK,表示設(shè)置成功,反之失敗。

函數(shù)指針的類型am_pfnvoid_t 在am_types.h 中定義,即:

當(dāng)鬧鐘事件發(fā)生時,將自動調(diào)用pfn_callback 指向的回調(diào)函數(shù),傳遞給該回調(diào)函數(shù)的void*類型的參數(shù)就是p_arg 設(shè)定值,范例程序詳見程序清單6.51。

程序清單6.51 設(shè)置鬧鐘回調(diào)函數(shù)范例程序

3. 打開鬧鐘

該函數(shù)用于打開鬧鐘,以便當(dāng)鬧鐘時間到時,自動調(diào)用用戶設(shè)定的回調(diào)函數(shù),其函數(shù)原型為:

其中,handle 為鬧鐘實例句柄。返回AM_OK,表示打開成功,反之失敗,范例程序詳見程序清單6.52。

程序清單6.52 打開鬧鐘范例程序

4. 關(guān)閉鬧鐘

該函數(shù)用于關(guān)閉鬧鐘,其函數(shù)原型為:

其中,handle 為鬧鐘實例句柄。返回AM_OK,表示關(guān)閉成功,反之失敗,范例程序詳見程序清單6.53。

程序清單6.53 關(guān)閉鬧鐘范例程序

基于鬧鐘通用接口,可以編寫一個通用的鬧鐘測試應(yīng)用程序:設(shè)定當(dāng)前時間為09:32:30,鬧鐘時間為09:34,一分半后,達(dá)到鬧鐘時間,蜂鳴器鳴叫1 分鐘。鬧鐘測試應(yīng)用程序的實現(xiàn)和接口聲明分別詳見程序清單6.54 和程序清單6.55。

程序清單6.54 鬧鐘測試應(yīng)用程序(app_alarm_clk_test.c)

程序清單6.55 鬧鐘測試應(yīng)用程序接口聲明(app_alarm_clk_test.h)

為了啟動該應(yīng)用程序,必須提供一個RTC 實例句柄以設(shè)置當(dāng)前時間與一個鬧鐘實例句柄用于設(shè)置鬧鐘,若使用PCF85063,則RTC 實例句柄可通過am_pcf85063_rtc_inst_init()獲得,鬧鐘實例句柄可通過am_pcf85063_alarm_clk_inst_init()獲得,范例程序詳見程序清單6.56。

程序清單6.56 啟動鬧鐘測試應(yīng)用程序(基于PCF85063)

>>>6.3.4 系統(tǒng)時間

AMetal 平臺提供了一個系統(tǒng)時間,進(jìn)行設(shè)置和獲取系統(tǒng)時間的函數(shù)原型詳見表6.12。

表6.12 系統(tǒng)時間接口函數(shù)(am_time.h)

1. 系統(tǒng)時間

系統(tǒng)時間的3 種表示形式分別為日歷時間、精確日歷時間、細(xì)分時間,細(xì)分時間前文已有介紹,這里僅介紹日歷時間和精確日歷時間。

  • 日歷時間

與標(biāo)準(zhǔn)C 的定義相同,日歷時間表示從1970 年1 月1 日1 時0 分0 秒開始的秒數(shù)。其類型am_time_t 定義如下:

  • 精確日歷時間

日歷時間精度為秒,精確日歷時間的精度可以達(dá)到納秒,精確日歷時間只是在日歷時間的基礎(chǔ)上,增加了一個納秒計數(shù)器,其類型am_timespec_t(am_time.h)定義如下:

當(dāng)納秒值達(dá)到1000000000 時,則秒值加1;當(dāng)該值復(fù)位為0 時,則重新計數(shù)。

2. 初始化

使用系統(tǒng)時間前,必須初始化系統(tǒng)時間,其函數(shù)原型為:

其中,rtc_handle 用于指定系統(tǒng)時間使用的RTC,系統(tǒng)時間將使用該RTC 保存時間和獲取時間。update_sysclk_ns 和 update_rtc_s 用以指定更新系統(tǒng)時間相關(guān)的參數(shù)。

  • RTC 句柄rtc_handle

獲取RTC 句柄可通過RTC 實例初始化函數(shù)獲取,以作為rtc_handle 的實參傳遞。即:

  • 與系統(tǒng)時間更新相關(guān)的參數(shù)(update_sysclk_ns 和 update_rtc_s)

每個MCU 都有一個系統(tǒng)時鐘,比如,LPC824,其系統(tǒng)時鐘的頻率為30MHz,常常稱之為主頻,在短時間內(nèi),該時鐘的誤差是很小的。由于直接讀取MCU 中的數(shù)據(jù)要比通過I2C讀取RTC 器件上的數(shù)據(jù)快得多,因此根據(jù)系統(tǒng)時鐘獲取時間值比直接從RTC 器件中獲取時間值要快得多,完全可以在短時間內(nèi)使用該時鐘更新系統(tǒng)時間,比如,每隔1ms 將精確日歷時間的納秒值增加1000000。但長時間使用該時鐘來更新系統(tǒng)時間,勢必產(chǎn)生較大的誤差,這就需要每隔一定的時間重新從RTC 器件中,讀取精確的時間值來更新系統(tǒng)時間,以確保系統(tǒng)時間的精度。

update_sysclk_ns 為指定使用系統(tǒng)時鐘更新系統(tǒng)時間的時間間隔,其單位為ns,通常設(shè)置為1~100ms,即1000000~100000000。update_rtc_s 為指定使用RTC 器件更新系統(tǒng)時間的時間間隔,若對精度要求特別高,將該值設(shè)置為1,即每秒都使用RTC 更新一次系統(tǒng)時間,通常設(shè)置為10~ 60 較為合理。

基于此,將初始化函數(shù)調(diào)用在添加到配置文件中,通過頭文件引出系統(tǒng)時間的實例初始化函數(shù)接口,詳見程序清單6.57 和程序清單6.58。

程序清單6.57 PCF85063 用作系統(tǒng)時間的實例初始化(am_hwconf_pcf85063.c)

程序清單6.58 am_hwconf_pcf85063.h 文件內(nèi)容更新(2)

后續(xù)只需要簡單的調(diào)用該無參函數(shù),即可完成系統(tǒng)時間的初始化。即:

3. 設(shè)置系統(tǒng)時間

根據(jù)不同的時間表示形式,有2 種設(shè)置系統(tǒng)時間方式。

  • 精確日歷時間設(shè)置的函數(shù)原型為:

其中,p_tv 為指向精確日歷時間(待設(shè)置的時間值)的指針。若返回AM_OK,表示設(shè)置成功,反之失敗,范例程序詳見程序清單6.59。

程序清單6.59 使用精確日歷時間設(shè)置系統(tǒng)時間范例程序

將精確日歷時間的秒值設(shè)置為了1472175150,該值是從1970 年1 月1 日0 時0 分0 秒至2016 年8 月26 日09 時32 分30 秒的秒數(shù)。即將時間設(shè)置為2016 年8 月26 日09 時32分30 秒。通常不會這樣設(shè)置時間值,均是采用細(xì)分時間方式設(shè)置時間值。

  • 細(xì)分時間設(shè)置的函數(shù)原型為:

其中,p_tm 為指向細(xì)分時間(待設(shè)置的時間值)的指針。若返回AM_OK,表示設(shè)置成功,反之失敗,范例程序詳見程序清單6.60。

程序清單6.60 使用細(xì)分時間設(shè)置系統(tǒng)時間范例程序

將時間設(shè)置為2016 年8 月26 日09:32:30,當(dāng)使用細(xì)分時間設(shè)置時間值時,則細(xì)分時間的成員tm_wday, tm_yday 在調(diào)用后被更新。如果不使用夏令時,則設(shè)置為-1。

4. 獲取系統(tǒng)時間

根據(jù)不同的時間表示形式,有3 種獲取系統(tǒng)時間的方式。

  • 獲取日歷時間的函數(shù)原型為:

其中,p_time 為指向日歷時間的指針,用于獲取日歷時間。返回值同樣為日歷時間,若返回值為-1,表明獲取失敗,通過返回值獲取日歷時間的范例程序詳見程序清單6.61。

程序清單6.61 通過返回值獲取日歷時間范例程序

也可以通過參數(shù)獲得日歷時間,范例程序詳見程序清單6.62。

程序清單6.62 通過參數(shù)獲取日歷時間范例程序

  • 獲取精確日歷時間的函數(shù)原型為:

其中,p_tv 為指向精確日歷時間的指針,用于獲取精確日歷時間。若返回AM_OK,獲取成功,反之失敗,范例程序詳見程序清單6.63。

程序清單6.63 讀取精確日歷時間范例程序

  • 獲取細(xì)分時間的函數(shù)原型為:

其中,p_tm 為指向細(xì)分時間的指針,用于獲取細(xì)分時間。若返回AM_OK,表示獲取成功,反之失敗,范例程序詳見程序清單6.64。

程序清單6.64 獲取細(xì)分時間范例程序

基于系統(tǒng)時間相關(guān)接口,可以編寫一個通用的系統(tǒng)時間測試應(yīng)用程序:每隔1s 通過調(diào)試串口打印當(dāng)前的系統(tǒng)時間值。應(yīng)用程序的實現(xiàn)和接口聲明分別詳見程序清單6.65 和程序清單6.66。

程序清單6.65 系統(tǒng)時間測試應(yīng)用程序(app_sys_time_show.c)

程序清單6.66 系統(tǒng)時間測試應(yīng)用程序接口聲明(app_sys_time_show.h)

由此可見,在應(yīng)用程序中,不再使用到任何實例句柄,使得應(yīng)用程序不與任何具體器件直接關(guān)聯(lián),系統(tǒng)時間的定義使得應(yīng)用程序在使用時間時更加便捷。在啟動應(yīng)用程序前,必須完成系統(tǒng)時間的初始化,若使用PCF85063 為系統(tǒng)時間提供RTC 服務(wù),則系統(tǒng)時間的初始化可以通過am_pcf85063_time_inst_init ()完成,范例程序詳見程序清單6.67。

程序清單6.67 啟動系統(tǒng)時間測試應(yīng)用程序(基于PCF85063)

>>>6.3.5 特殊功能控制接口

對于PCF85063,除典型的時鐘和鬧鐘功能外,還具有一些特殊功能,如定時器、時鐘輸出、1 字節(jié)RAM 等。這些功能由于不是通用功能,只能使用PCF85063 相應(yīng)的接口進(jìn)行操作。以讀寫1 字節(jié)RAM 為例,其相應(yīng)的接口函數(shù)詳見表6.13。

表6.13 讀寫RAM 接口函數(shù)(am_pcf85063.h)

1. 寫入RAM

該函數(shù)用于寫入1 字節(jié)數(shù)據(jù)到PCF85063 的RAM 中,其函數(shù)原型為:

其中,handle 為PCF85063 實例句柄,data 為寫入的單字節(jié)數(shù)據(jù)。若返回AM_OK,表示數(shù)據(jù)寫入成功,反之失敗,寫入0x55 至RAM 中的范例程序詳見程序清單6.68。

程序清單6.68 寫入RAM 范例程序

2. 讀取RAM

該函數(shù)讀取存于PCF85063 的單字節(jié)RAM 中的數(shù)據(jù),其函數(shù)原型為:

其中,handle 為PCF85063 實例句柄,p_data 為輸出參數(shù),用于返回讀取到的單字節(jié)數(shù)據(jù)。返回AM_OK,表示讀取成功,反之失敗,范例程序詳見程序清單6.69。

程序清單6.69 讀取范例程序

可以使用讀寫RAM 接口簡單驗證PCF85063 是否正常,詳見程序清單6.70。

程序清單6.70 讀寫RAM 數(shù)據(jù)范例程序


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • RTC
    RTC
    +關(guān)注

    關(guān)注

    2

    文章

    653

    瀏覽量

    71849

原文標(biāo)題:周立功:重用外設(shè)驅(qū)動代碼—— RTC 實時時鐘(1)

文章出處:【微信號:Zlgmcu7890,微信公眾號:周立功單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    德州儀器 bq4802Y/bq4802LY 實時時鐘芯片的全面解析

    德州儀器 bq4802Y/bq4802LY 實時時鐘芯片的全面解析 在電子設(shè)計領(lǐng)域,實時時鐘RTC)芯片是確保系統(tǒng)時間準(zhǔn)確性和數(shù)據(jù)完整性的關(guān)鍵組件。德州儀器(TI)的 bq4802Y
    的頭像 發(fā)表于 02-10 14:05 ?195次閱讀

    RTC實時時鐘的內(nèi)部結(jié)構(gòu)和選型方法

    在電子設(shè)備的世界里,RTC(Real-Time Clock,實時時鐘)就像是一位不知疲倦的守時者。它的核心價值在于:即使主設(shè)備徹底斷電關(guān)機(jī),RTC也能依靠一顆小小的備用電池或超級電容繼續(xù)運行,確保下次開機(jī)時系統(tǒng)時間依然準(zhǔn)確,無需
    的頭像 發(fā)表于 02-10 11:36 ?589次閱讀
    <b class='flag-5'>RTC</b><b class='flag-5'>實時時鐘</b>的內(nèi)部結(jié)構(gòu)和選型方法

    深入解析bq32000實時時鐘:特性、應(yīng)用與設(shè)計要點

    深入解析bq32000實時時鐘:特性、應(yīng)用與設(shè)計要點 在電子設(shè)備的設(shè)計中,實時時鐘RTC)是一個關(guān)鍵組件,它為系統(tǒng)提供精確的時間和日期信息。TI的bq32000實時時鐘以其豐富的特性
    的頭像 發(fā)表于 02-09 11:25 ?222次閱讀

    國產(chǎn)RTC8025實時時鐘芯片

    RTC8025是一款實時時鐘芯片,具備高精度計時功能,常溫下精度可保持在±2ppm以內(nèi),適用于智能電表等對時間穩(wěn)定性要求高的場景。?1 該芯片內(nèi)置32.768kHz晶振和溫度補償電路,能根據(jù)環(huán)境溫度
    的頭像 發(fā)表于 02-04 11:25 ?141次閱讀
    國產(chǎn)<b class='flag-5'>RTC</b>8025<b class='flag-5'>實時時鐘</b>芯片

    愛普生RTC實時時鐘模塊的主要特點

    愛普生實時時鐘模塊(Real-Time Clock Module), 內(nèi)置晶體振蕩器、支持低功耗,并具備多功能系統(tǒng)所需的各種功能,例如喚醒定時器、電源切換和時間戳,同時實現(xiàn)低功耗且高精準(zhǔn)的日期與時間管理。
    的頭像 發(fā)表于 02-02 11:19 ?480次閱讀
    愛普生<b class='flag-5'>RTC</b><b class='flag-5'>實時時鐘</b>模塊的主要特點

    EPSON RX-4571LC實時時鐘模塊,滿足緊湊型設(shè)備的精準(zhǔn)計時

    如今可穿戴產(chǎn)品越來越普及功能不斷增加,對設(shè)備緊湊度的要求越來越高,傳統(tǒng)的分立式實時時鐘電路已經(jīng)難以滿足主流設(shè)計需要,高效、小巧的RTC實時時鐘模塊應(yīng)運而生。愛普生/EPSON是一家為應(yīng)用客戶提供
    的頭像 發(fā)表于 01-29 16:46 ?219次閱讀
    EPSON RX-4571LC<b class='flag-5'>實時時鐘</b>模塊,滿足緊湊型設(shè)備的精準(zhǔn)計時

    愛普生RTC實時時鐘模塊解析與選型指南

    32.768kHz晶振廣泛應(yīng)用于各類時鐘電路中,雖然價格較低的音叉晶振用得多,但如果對穩(wěn)定性要求更高、在一些更精密的電子設(shè)備中往往就得需要更精準(zhǔn)的32.768kHz有源晶振或者實時時鐘模塊(RTC
    的頭像 發(fā)表于 01-05 16:40 ?682次閱讀
    愛普生<b class='flag-5'>RTC</b><b class='flag-5'>實時時鐘</b>模塊解析與選型指南

    用AT指令來設(shè)置RTC實時時

    RTC時間需要在設(shè)備初始化時進(jìn)行設(shè)置。為了解決RTC實時設(shè)置或者較調(diào),我這里設(shè)計了用AT指令來設(shè)置RTC實時時間。 開機(jī)復(fù)位時需要初始化
    發(fā)表于 01-05 08:09

    深入解析PCF85053A:一款強大的實時時鐘芯片

    深入解析PCF85053A:一款強大的實時時鐘芯片 引言 在電子設(shè)計領(lǐng)域,實時時鐘RTC)芯片是許多系統(tǒng)中不可或缺的組件,它能為設(shè)備提供精確的時間信息。NXP的PCF85053A就是這樣一款性能
    的頭像 發(fā)表于 12-24 16:40 ?382次閱讀

    芯伯樂PCF8563:0.25μA低功耗實時時鐘解決方案

    在各類需要精準(zhǔn)計時、日歷功能的嵌入式系統(tǒng)中,實時時鐘芯片(RTC)是不可或缺的核心元件。芯伯樂PCF8563作為一款基于IIC接口的超低功耗實時時鐘/日歷芯片,以其高精度、小封裝、強抗干擾能力
    的頭像 發(fā)表于 11-28 18:34 ?485次閱讀
    芯伯樂PCF8563:0.25μA低功耗<b class='flag-5'>實時時鐘</b>解決方案

    RVMCU課堂「20」: 手把手教你玩轉(zhuǎn)RVSTAR—實時時鐘RTC

    ?實時時鐘(Real-Time Clock,RTC)常用于制作時鐘日歷。RTC電路分屬于兩個電源域:備份域和VDD電源域。RTC的核心計數(shù)部
    發(fā)表于 10-29 08:10

    第二十八章 RTC——實時時鐘

    本文介紹了W55MH32的RTC外設(shè),其為掉電可運行的32位計數(shù)器,常用LSE 32.768KHz時鐘源,引入UNIX時間戳概念。還介紹相關(guān)庫函數(shù),及配置RTC、處理中斷、顯示時間和校
    的頭像 發(fā)表于 06-20 14:08 ?1365次閱讀
    第二十八章 <b class='flag-5'>RTC</b>——<b class='flag-5'>實時時鐘</b>

    ST M41T66Q6F 低功耗串行實時時鐘RTC)內(nèi)置32.768 kHz振蕩器參數(shù)特性 EDA模型與數(shù)據(jù)手冊

    ST M41T66Q6F 低功耗串行實時時鐘RTC)內(nèi)置32.768 kHz振蕩器參數(shù)特性 EDA模型與數(shù)據(jù)手冊
    的頭像 發(fā)表于 06-16 17:39 ?1222次閱讀
    ST M41T66Q6F 低功耗串行<b class='flag-5'>實時時鐘</b>(<b class='flag-5'>RTC</b>)內(nèi)置32.768 kHz振蕩器參數(shù)特性 EDA模型與數(shù)據(jù)手冊

    “耐高溫!”RTC時鐘芯片+電池的應(yīng)用案例(二)

    實時時鐘,簡稱RTC,是廣泛應(yīng)用于電子產(chǎn)品的重要元器件。愛普生RTC實時時鐘具有高精度、高穩(wěn)定性和多功能等特點,廣泛應(yīng)用于多個行業(yè)。RTC
    的頭像 發(fā)表于 06-04 17:35 ?1750次閱讀
    “耐高溫!”<b class='flag-5'>RTC</b><b class='flag-5'>時鐘</b>芯片+電池的應(yīng)用案例(二)

    RA4000CE愛普生RTC實時時鐘模塊:車載BMS系統(tǒng)的理想選擇

    愛普生RTC模塊集成32.768kHz石英晶體振蕩器與實時時鐘芯片,為BMS提供精確的時間和日期信息,助力系統(tǒng)執(zhí)行時間相關(guān)操作。該模塊采用QMEMS技術(shù)和半導(dǎo)體技術(shù),具備高精度和低電流損耗特性,配備
    的頭像 發(fā)表于 03-12 17:16 ?1246次閱讀