女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

AWorks怎么將ZLG72128應用到實際項目的核心應用部分?

丫丫119 ? 來源:未知 ? 作者:肖冰 ? 2019-09-28 06:12 ? 次閱讀

立功科技提供了ZLG72128多種平臺的通用驅動程序,包括通用MCU、Linux(核心板)、AMetal/AWorks平臺。本文主要講解AWorks平臺下,ZLG72128軟件的應用。

我們前兩天的文章有介紹ZLG72128的數碼管顯示驅動及鍵盤掃描管理,感興趣的用戶可點擊查看:

ZLG72128硬件電路設計之按鍵掃描電路

ZLG72128硬件電路設計之數碼管顯示電路

Linux平臺下ZLG72128的使用

接下來為大家講解AWorks平臺下,ZLG72128軟件的應用。

為了使應用程序不與具體的硬件綁定,進而實現“跨平臺復用”,AWorks提供了一套通用接口。通用接口只與“抽象的”的功能相關,而與“具體的”硬件無關。若應用程序基于通用接口編寫,無需關心任何底層細節,直接使用AWorks提供的通用數碼管接口和鍵盤管理接口實現相應功能。在更換底層硬件時,應用程序無需作任何修改。

設備使能及配置

1、設備使能

在使用ZLG72128之前,必須使能ZLG72128硬件設備,并完成ZLG72128相關的配置。

設備使能的方法為:確保在aw_prj_params.h文件中定義的AW_DEV_ZLG72128_0宏處于有效狀態,即未被注釋。

若aw_prj_params.h文件中沒有定義該宏,則可以自行添加該宏的定義。通常情況下,若未定義該宏,表明用戶所使用的模板工程沒有添加ZLG72128設備的默認配置,此時,用戶還需添加相應的配置文件。

2、設備配置

設備相關的配置集中在用戶配置文件目錄(user_config\awbl_hwconf_usrcfg\)下的awbl_hwconf_zlg72128.h

文件中,方便用戶根據實際情況對文件中的部分配置信息作相應的修改。文件的示意內容詳見程序:

由此可見,該宏可能有兩種定義,具體定義被 AW_DEV_ZLG72128_0 宏控制,僅當AW_DEV_ZLG72128_0被有效定義時,AWBL_HWCONF_ZLG72128_0的定義才包含實際內容,否則,AWBL_HWCONF_ZLG72128_0是一個內容為空的宏。

一個硬件設備要正常工作,必須將其對應的設備宏加入到AWorks指定的硬件設備列表中,硬件設備列表在awbus_lite_hwconf_usrcfg.c文件中定義,即一個名為:g_awbl_devhcf_list[]的數組,該數組的每一個成員都描述了系統中的一個硬件設備。要使用ZLG72128,則應該將ZLG72128對應的設備宏加入到硬件設備列表中,一個簡單的示例片段:

通常情況下,若在系統工程中存在ZLG72128的配置文件,則該宏默認已經加入到了硬件設備列表中,用戶只需要用過使能宏AW_DEV_ZLG72128_0控制設備是否使能即可。

通用數碼管接口

AWorks提供了一組通用數碼管接口,詳見圖1。

圖1通用數碼管接口

1、設置段碼解碼函數

通過控制數碼管各個段的亮滅,可以組合顯示出多種圖形,例如,對于8段數碼管,要顯示字符“1”,則需要點亮b、c兩段,對應的編碼值(即段碼)為0x60。解碼函數用于對特定字符進行解碼,以獲取對應字符的編碼值。根據編碼值,可以知道在顯示對應字符時,哪些段需要點亮(相應位為1),哪些段需要熄滅(相應位為0)。設置段碼解碼函數即用于用戶自定義字符的解碼函數,其函數原型為:

其中,id表示數碼管顯示器的編號,若系統只有一個數碼管顯示器,則id為0。pfn_decode為函數指針,其指向的函數即為本次設置的段碼解碼函數,解碼函數的參數為uint16_t類型的字符,返回值為uint16_t類型的編碼。絕大部分情況下,對于8段數碼管,常用字符圖形(如字符''''0''''~''''9''''等)都具有默認編碼,為此,AWorks提供了默認的8段數碼管解碼函數,可以支持常見的字符''''0'''' ~ ''''9''''以及''''A''''、''''B''''、''''C''''、''''D''''、''''E''''、''''F''''等字符的解碼。其在am_digitron_disp.h文件中聲明:

若無特殊需求,可以將該函數作為pfn_decode的實參傳遞。部分應用可能具有特殊需求,需要在顯示某些字符時使用自定義的編碼,可自定義解碼函數,然后將該函數作為pfn_decode的實參傳遞即可。

2、設置數碼管閃爍

該函數可以指定數碼管顯示器的某一位數碼管閃爍,其函數原型為:

其中,id為數碼管顯示器編號;index為數碼管索引,通常情況下,一個數碼管顯示器具有多個顯示位,索引即用于指定具體操作哪一位數碼管,例如,ZLG72128最高可以驅動12位數碼管,則該數碼管顯示器對應的位索引范圍為:0~11;blink表示該位是否閃爍,若其值為AM_TRUE,則閃爍,反之,則不閃爍,默認情況下,所有數碼管均處于未閃爍狀態。如設置1號數碼管閃爍的范例程序:

3、顯示指定的段碼圖形

該函數用于不經過解碼函數解碼,直接顯示段碼指定的圖形,可以靈活的顯示任意特殊圖形,其函數原型為:

其中,id為數碼管顯示器編號;index為數碼管索引;seg為顯示的段碼。段碼為8位,bit0~bit7分別對應段a~dp。位值為1時,對應段點亮,位值為0時,對應段熄滅。如在8段數碼管上顯示字符''''-'''',即需要g段點亮,對應的段碼為0x40(即:0100 0000),范例程序:

4、顯示單個字符

函數用于在指定位置顯示一個字符,字符經過解碼函數解碼后顯示,若解碼函數不支持該字符,則不顯示任何內容,其函數原型為:

其中,id為數碼管顯示器編號,index為數碼管索引,ch為顯示的字符。比如,顯示字符''''H''''的范例程序:

5、顯示字符串

該函數用于從指定位置開始顯示一個字符串,其函數原型為:

其中,id為數碼管顯示器編號,index為顯示字符串的數碼管起始索引,即從該索引指定的數碼管開始顯示字符串,len指定顯示的長度(顯示該字符串所使用的數碼管位數),p_str指向需要顯示的字符串。

實際顯示的長度是len和字符串長度的較小值,若數碼管位數不夠,則多余字符不顯示。部分情況下,顯示所占用的數碼管長度可能與字符串實際顯示的長度不等,例如,顯示字符串“1.”,其長度為2,但實際顯示時,字符“1”和小數點均可顯示在一位數碼管上,因此,該顯示僅占用一位數碼管。

顯示"HELLO."字符串的范例程序:

6、顯示清屏

該函數用于顯示清屏,清除數碼管顯示器中的所有內容,其函數原型為:

其中,id為數碼管顯示器編號,范例程序:

7、使能數碼管顯示

數碼管默認是處于使能狀態的,只有當被禁能后,才需要使用該函數重新使能。數碼管僅在使能狀態下才可以正常顯示。

該函數用于使能數碼管顯示,其函數原型為:

其中,id為數碼管顯示器編號,范例程序:

8、禁能數碼管顯示

數碼管默認處于使能狀態,可以正常顯示。清屏狀態下只是清空了數碼管顯示的內容,數碼管實際上還是處于工作狀態,對于動態掃描類數碼管,依然處于動態掃描狀態,需要消耗CPU資源。若長時間不使用數碼管,可以徹底關閉數碼管顯示器,關閉數碼管掃描,節省CPU資源,甚至是關閉數碼管的電源,降低系統功耗。關閉數碼管顯示器的函數原型為:

其中,id為數碼管顯示器編號,范例程序:

數碼管被禁能后,將不能再正常顯示,若需正常顯示,必須使用aw_digitron_disp_enable()接口重新使能數碼管。

通用鍵盤管理接口

對于用戶來講,要使用按鍵,即需要對外部輸入的按鍵事件進行處理,為此,需要向系統中注冊一個輸入事件處理器,該處理器中,包含了用戶自定義的事件處理函數,當有按鍵事件發生時,系統將自動回調事件處理器中的用戶函數。

AWorks提供了注冊輸入事件處理器的接口,其函數原型為:

1、輸入事件處理器

p_input_handler指向輸入事件處理器。aw_input_handler_t是輸入事件處理器的類型,它是在aw_input.h文件中定義,用戶無需關心該類型的具體定義,僅需使用該類型定義輸入事件處理器的實例即可。比如:

其中,實例的地址(&key_handler)即可作為參數傳遞給函數的形參p_handler。

2、用戶自定義事件處理函數

aw_input_cb_t為事件處理函數的類型,它是在aw_input.h文件中使用typedef自定義的一個類型。即:

當輸入事件發生時,無論是按鍵事件,還是其它坐標事件,比如:鼠標、觸摸屏等。均會調用pfn_cb指針指向的函數,當該函數被調用時,p_input_data為輸入事件相關的數據,包含事件類型(區分按鍵事件或坐標事件,比如:鼠標、觸摸屏等)、按鍵編碼、坐標等信息,用戶可以根據這些數據作出相應的處理動作。p_usr_data為用戶自定義的參數,其值與注冊事件處理器時傳遞的p_usr_data參數一致,若不使用該參數,則可以在注冊事件處理器時,將p_usr_data參數的值設置為NULL。

p_input_data的類型為aw_input_event_t指針類型,aw_input_event_t類型在aw_input.h文件中定義如下:

其本質上是一個結構體類型,僅包含一個數據成員,用于表示事件的類型,若為按鍵事件,則該值為AW_INPUT_EV_KEY;若為絕對事件(比如觸摸屏上的觸摸事件),則該值為AW_INPUT_EV_ABS。

若p_input_data指向的數據中,ev_type的值為AW_INPUT_EV_KEY,則表示其指向的數據本質上是一個完整的按鍵事件數據,其類型為aw_input_key_data_t,該類型在aw_input.h文件中定義如下:

1) input_ev

其中包含了事件的具體類型,也正因為其第一個數據成員的類型為aw_input_event_t,系統才可以在回調用戶自定義的函數時,將aw_input_key_data_t類型的指針轉換為指向aw_input_event_t類型的指針使用。

2) key_code

按鍵的編碼,按鍵編碼用于區分各個按鍵,通常情況下,一個系統中可能存在多個按鍵,比如,ZLG72128最多支持32個按鍵,為每個按鍵分配一個唯一的編碼,當按鍵事件發生時,用戶可以據此判斷是哪個按鍵產生了按鍵事件。此外,出于可讀性、可維護性等考慮,按鍵編碼一般不直接使用數字,比如:1、2、3……而是使用在aw_input_code.h文件中使用宏的形式定義的一系列編碼,比如,KEY_1、KEY_2等,用以區分各個按鍵;

3) key_state

key_state表示本次按鍵事件具體對應的按鍵狀態,用以區分按鍵事件是按下事件還是釋放事件。若該值不為0,則表示按鍵按下;否則,表示按鍵釋放。

4) keep_time

表示狀態保持時間(單位:ms),常用于按鍵長按應用(例如,按鍵長按3秒關機),按鍵首次按下時,keep_time為0,若按鍵一直保持按下,則系統會以一定的時間間隔上報按鍵按下事件(調用pfn_cb指向的用戶回調函數),keep_time的值不斷增加,表示按鍵按下已經保持的時間。特別地,若按鍵不支持長按功能,則keep_time始終為-1。

以下提供一個簡單的應用范例程序:

注冊按鍵處理器后,當按鍵按下或釋放時,均會調用注冊按鍵處理器時指定的回調函數(__key_process())函數。

AWorks平臺提供了較全面的功能接口函數,所有接口函數均脫離底層,不與具體硬件綁定,真正實現跨平臺移植。AWorks助你更加快捷的將ZLG72128應用到實際項目中,將專注力投入到核心應用部分,讓具有競爭力的產品更快走向市場!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17825

    瀏覽量

    360244
  • Linux
    +關注

    關注

    87

    文章

    11456

    瀏覽量

    212759
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    全面剖析數碼管與矩陣鍵盤聯合使用法則

    本文內容為7.7 數碼管與矩陣鍵盤聯合使用、7.8 ZLG72128——數碼管與鍵盤管理、7.9 溫控器。
    的頭像 發表于 11-21 07:47 ?1.1w次閱讀
    全面剖析數碼管與矩陣鍵盤聯合使用法則

    以NFC核心板為例講述基于AWorks平臺開發的具體方法

    ZLG致遠電子推出了一系列“MCU+無線”核心板,本文以NFC核心板為例講述基于AWorks平臺開發的具體方法。
    的頭像 發表于 06-22 09:16 ?6620次閱讀
    以NFC<b class='flag-5'>核心</b>板為例講述基于<b class='flag-5'>AWorks</b>平臺開發的具體方法

    AWorks試用體驗】+揭開AWorks神秘面紗(開箱貼)

    滿足大部分工業采集控制應用??吹秸装遄拥臅r候,我就覺得,我需要的項目方案,就擺在面前了。再追加一個全家福~整套開發板,布板緊湊,外設豐富,功能強大,解下來的日子,我陪伴她很多個日日夜夜,但愿她能一直陪在我身邊,助我成就一個個
    發表于 08-19 15:22

    AWorks的哲學思想

    高度抽象呢?如果實現就能做到讓專業的人做專業的事,AWorks就是在這樣的背景下誕生的。由于其中融入了更多的軟件工程技術方法,因此就能做到程序員徹底從非核心域中釋放出來聚焦于核心競爭
    發表于 05-04 15:43

    4本周立功嵌入式學習指南,看完你也能跟上大神的步伐~

    在數據結構和算法方面的應用進行了深入講解和闡述。3. 講解了絕大多數C程序員開發生涯中沒有考慮過的問題?!?b class='flag-5'>ZLG72128編程指南》本編程指南旨在為用戶提供編程指導,書中列舉了大量的程序范例,使用戶可以
    發表于 09-04 16:31

    請問如何Swift語言應用到MCU開發中?

    請問如何Swift語言應用到MCU開發中?
    發表于 02-11 07:30

    上傳android應用到googlemarket步驟

    上傳android應用到googlemarket步驟
    發表于 03-19 11:23 ?0次下載

    ZLG72128數碼管顯示驅動及鍵盤掃描管理芯片

    ZLG72128還為普通鍵提供了連擊計數功能,即按住某個普通鍵不松手,經過兩秒鐘的延遲后,開始連續有效,連續有效間隔時間為兩百毫秒。同時鍵值還具有鎖存功能,當MCU執行其他操作來不及實時讀取鍵值,ZLG72128會將檢測到的鍵值放在鍵值寄存器中,等待MCU讀取;
    的頭像 發表于 04-11 09:15 ?1.1w次閱讀
    <b class='flag-5'>ZLG72128</b>數碼管顯示驅動及鍵盤掃描管理芯片

    ZLG72128——ZLG自行設計的數碼管顯示驅動及鍵盤掃描管理芯片

    ZLG72128還為普通鍵提供了連擊計數功能,即按住某個普通鍵不松手,經過兩秒鐘的延遲后,開始連續有效,連續有效間隔時間為兩百毫秒。同時鍵值還具有鎖存功能,當MCU執行其他操作來不及實時讀取鍵值,ZLG72128會將檢測到的鍵值放在鍵值寄存器中,等待MCU讀取;
    的頭像 發表于 04-11 09:37 ?8010次閱讀
    <b class='flag-5'>ZLG72128</b>——<b class='flag-5'>ZLG</b>自行設計的數碼管顯示驅動及鍵盤掃描管理芯片

    基于AWorks LED燈點亮的簡單例程

    AWorksZLG歷時12年開發的下一代嵌入式開發平臺,支持組件“可插拔、可替換、可配置”,用戶只需修改相應的頭文件,即可實現“一次編程、終生使用、跨平臺”,本文為大家介紹AWorks點亮一個LED燈簡單例程,感受
    的頭像 發表于 04-12 15:40 ?4347次閱讀

    入門教程:如何用AWorks點亮一個LED燈

    AWorksZLG歷時12年開發的下一代嵌入式開發平臺,支持組件“可插拔、可替換、可配置”,用戶只需修改相應的頭文件,即可實現“一次編程、終生使用、跨平臺”,本文為大家介紹AWorks點亮一個LED燈簡單例程,帶大家感受
    的頭像 發表于 12-24 11:34 ?1404次閱讀

    Linux環境編程:從應用到內核

    Linux環境編程:從應用到內核資料下載。
    發表于 06-01 14:51 ?18次下載

    如何轉換器設計指標應用到 Fly-Buck 電路設計中

    本博客共分兩個部分,第 1 部分我們探討了使 Fly-Buck 設計穩定所需的重要設計指標。本文我們介紹如何這些設計指標應用到 Fly-
    的頭像 發表于 01-28 09:24 ?1778次閱讀
    如何<b class='flag-5'>將</b>轉換器設計指標<b class='flag-5'>應用到</b> Fly-Buck 電路設計中

    Swift語言應用到MCU開發中(下)

    本文的上半部分簡單介紹了什么是Swift,為什么要用Swift做MCU的開發語言:Swift語言應用到MCU開發中(上)。接下來介紹作者本人在進行的一個
    發表于 02-08 17:03 ?2次下載
    <b class='flag-5'>將</b>Swift語言<b class='flag-5'>應用到</b>MCU開發中(下)

    如何大模型應用到效能評估系統中去

    如何大模型應用到效能評估系統中去 智慧華盛恒輝效能評估系統大數據的應用效能評估系統及其評估方法,以應用基礎數據和應用運行數據為基礎,從數據開放集約能力、用戶認可度、平安運行能力和運維保障支持四個
    的頭像 發表于 09-27 16:16 ?702次閱讀