日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 通信技術(shù) > 雷達通信電子戰(zhàn)
[導讀]關注、星標公眾號,直達精彩內(nèi)容來源:技術(shù)讓夢想更偉大作者:李肖遙Blinky是自帶的一個很簡單的例子,也就是我們俗稱的”HelloWorld!”,可以幫助我們了解QP。在這個blinky中,是以1HZ的速率閃爍LED燈,0.5s開燈,05s關燈。關于Blinky工程先來認識QM這...

關注、星標公眾號,直達精彩內(nèi)容

來源:技術(shù)讓夢想更偉大

作者:李肖遙


Blinky是自帶的一個很簡單的例子,也就是我們俗稱的”Hello World!”,可以幫助我們了解QP。在這個blinky中,是以1HZ的速率閃爍LED燈,0.5s開燈,05s關燈。

關于Blinky工程

先來認識QM這個軟件,我更改了模式,看起來還不錯,

這個模式在view里可以設置

然后,新建一個QM工程

工程打開之后,我們看看工程目錄,

工程當中有很多的快捷鍵,很方便,這里如果大家有興趣可以自己熟練一下,接下來看看具體的代碼以及功能。

實現(xiàn)的功能

在這個blinky應用中,只有一個名為Blinky的活動對象,這個小巧的對象只應用了最基本的QP功能,先看看main函數(shù)。

int?main()?{
????static?QEvt?const?*blinky_queueSto[10];?/*Blinky的事件隊列緩沖區(qū)?
*/
????QF_init();??/*初始化框架*/
????BSP_init();?/*初始化BSP*/

????/*實例化并啟動Blinky活動對象*/
????Blinky_ctor();?/*顯式調(diào)用Blinky構(gòu)造函數(shù)?*/
????QACTIVE_START(AO_Blinky,
????????1U,??????????????????/*優(yōu)先級?*/
????????blinky_queueSto,?????/*事件隊列緩沖區(qū)*/
????????Q_DIM(blinky_queueSto),?/*緩沖區(qū)的長度*/
????????(void?*)0,?0U,???????/*私有堆棧(未使用)*/
????????(QEvt?*)0);??????????/*初始化事件(未使用)*/
????
????/*讓框架運行應用程序*/
????return?QF_run();?
}
在這個demo中,初始化QP框架和bsp包,而且只定義一個簡單的Blinky對象,為Blinky 對象寫了狀態(tài)機,然后開始運行這個對象。

狀態(tài)機

雙擊Blinky :QActive , 這個Blinky AO的狀態(tài)機如下圖所示:

在這個狀態(tài)機最頂端的initial transtion設定了一個QP event()中的QTimeEvt_armX())在每隔半秒鐘投遞一次超時信號。

QTimeEvt_armX函數(shù)原型如下,準備一個時間事件(一次射擊或定期一次)以直接發(fā)布事件。

void?QTimeEvt_armX?(?QTimeEvt?*const??me,
??QTimeEvtCtr?const??nTicks,
??QTimeEvtCtr?const??interval?
)??
//Definition?at?line?297?of?file?qf_time.c.
點擊下面的off,initial transtion導致狀態(tài)“off”,并在entry中執(zhí)行關閉LED的操作。

void?BSP_ledOff(void)?
{?
??printf("LED?OFF\n");?
}
當TIMEOUT 事件抵達“off”狀態(tài)的時候,“off”狀態(tài)將會遷移到“on”狀態(tài)。

“on”狀態(tài)里的entry 動作將會關閉LED。

void?BSP_ledOn(void)??
{?
??printf("LED?ON\n");??
}
最后,當“on”狀態(tài)接收到TIMEOUT 事件,“on”狀態(tài)會跳轉(zhuǎn)到“off”狀態(tài),“off”狀態(tài)的entry 動作將會被執(zhí)行關閉LED操作。

到此,以上的循環(huán)將會一直重復,整個狀態(tài)一直在運轉(zhuǎn)了。

看看狀態(tài)機的代碼

不知道大家看到上面解釋中的代碼有沒有疑惑,BSP_ledOn()函數(shù)啥都沒有啊,難道不應該控制某個gpio口來控制led燈的狀態(tài)嗎?

這里是專門被設計成了不需要直接訪問目標資源,不寫入特定的嵌入式主板的GPIO,而是訪問調(diào)用封裝好的BSP,這樣就不需要改變它的狀態(tài)機代碼了。

對于不同的硬件平臺,狀態(tài)機實現(xiàn)代碼(blinky.c)是一樣的,只需要更改bsp包就行

工程中blinky.c源碼如下:

我們來看看主要的代碼:

void?Blinky_ctor(void)?{
????Blinky?*me?=?(Blinky?*)AO_Blinky;
????QActive_ctor(
本站聲明: 本文章由作者或相關機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀

在嵌入式系統(tǒng)開發(fā)中,狀態(tài)機作為一種高效的任務調(diào)度模型,通過將復雜邏輯分解為離散狀態(tài)和轉(zhuǎn)移條件,顯著提升了系統(tǒng)的可維護性和實時性。本文以智能交通信號燈控制系統(tǒng)為例,闡述狀態(tài)機設計在嵌入式任務調(diào)度中的具體實現(xiàn)方法。

關鍵字: 狀態(tài)機 嵌入式系統(tǒng)

在高速數(shù)據(jù)通信領域,HDLC(高級數(shù)據(jù)鏈路控制)協(xié)議憑借其面向比特的同步傳輸機制和強大的錯誤檢測能力,成為工業(yè)總線、衛(wèi)星通信等場景的核心協(xié)議。其幀同步功能通過標志序列(0x7E)實現(xiàn),但比特流中可能出現(xiàn)的偽標志序列(連續(xù)...

關鍵字: 通信協(xié)議 HDLC幀 FPGA 狀態(tài)機

在嵌入式系統(tǒng)與底層軟件開發(fā)中,C語言的枚舉類型(enum)因其強大的語義表達能力,成為狀態(tài)機設計和位域操作的核心工具。本文將從底層原理出發(fā),解析枚舉類型在狀態(tài)機實現(xiàn)中的優(yōu)化策略,并探討其與位域(bit-field)的協(xié)同...

關鍵字: C語言 嵌入式系統(tǒng) 狀態(tài)機

在SIP終端在同一個函數(shù)中同時作為主叫方和被叫方的情況。即在RequestINVITE函數(shù)中,這個SIP終端需要能夠構(gòu)造INVITE請求(作為主叫方),同時還需要處理作為被叫方時的各種響應,比如發(fā)送100 Trying、...

關鍵字: INVITE 狀態(tài)機

在嵌入式系統(tǒng)開發(fā)中,有限狀態(tài)機(FSM)是一種強大的工具,它能夠幫助開發(fā)者以清晰、結(jié)構(gòu)化的方式管理復雜的狀態(tài)轉(zhuǎn)換邏輯。FSM通過將系統(tǒng)行為劃分為一系列狀態(tài)和狀態(tài)之間的轉(zhuǎn)換,簡化了系統(tǒng)的設計和調(diào)試過程。在第一部分中,我們已...

關鍵字: 嵌入式系統(tǒng) 狀態(tài)機 FSM C++

自動飲料售賣機作為一種自助式零售設備,近年來在國內(nèi)外得到了廣泛應用。本文將詳細介紹一款功能完善、操作簡便的自動飲料售賣機的設計與實現(xiàn)過程,包括有限狀態(tài)機(FSM)的設計、Verilog編程、以及設計工程中可使用的工具及大...

關鍵字: Verilog 狀態(tài)機 FSM

在現(xiàn)代電子系統(tǒng)中,同步信號處理和模式識別是至關重要的。特別是在通信、數(shù)據(jù)處理和控制系統(tǒng)等領域,對輸入信號進行實時分析以檢測特定模式或字符串是常見的需求。本文將介紹如何使用Verilog語言設計一個有限狀態(tài)機(FSM),以...

關鍵字: Verilog 狀態(tài)機

在數(shù)字電路與系統(tǒng)設計領域,有限狀態(tài)機(Finite State Machine,F(xiàn)SM)是一種重要的設計工具。FSM能夠基于輸入信號和當前狀態(tài),通過狀態(tài)轉(zhuǎn)移和輸出邏輯,實現(xiàn)復雜的時序控制功能。Moore狀態(tài)機和Mealy...

關鍵字: Moore Mealy 狀態(tài)機

狀態(tài)機的全稱是有限狀態(tài)自動機,自動兩個字也是包含重要含義的。給定一個狀態(tài)機,同時給定它的當前狀態(tài)以及輸入,那么輸出狀態(tài)是可以明確地運算出來的。

關鍵字: 狀態(tài)機 自動門

在數(shù)字電路與系統(tǒng)設計的廣闊天地中,Verilog HDL(硬件描述語言)以其強大的描述能力和靈活性,成為了設計師們不可或缺的利器。而在Verilog的眾多特性中,狀態(tài)機(Finite State Machine, FSM...

關鍵字: Verilog 狀態(tài)機
關閉