程序其實(shí)可以這么玩,這篇分享不會(huì)告訴你QP怎么安裝,狀態(tài)機(jī)的原理,QM的教程,只是給大家演示如何應(yīng)用QP量子編程完成一個(gè)定時(shí)點(diǎn)燈的小程序,首先打開QM軟件,然后創(chuàng)建一個(gè)空的工程,這是一個(gè)輕量級(jí)的小軟件,遠(yuǎn)沒有你用的IDE工具那么復(fù)雜,這是一個(gè)狀態(tài)機(jī)建模的工具,如下圖:
單擊OK以后,那么一個(gè)空的工程就出現(xiàn)了,如下圖:
左邊的工作區(qū)多了一個(gè)QPC的目錄,有個(gè)括號(hào)寫著locked,意思是這個(gè)是以QPC為框架構(gòu)架的狀態(tài)圖,locked意思是不能修改,可以理解為MDK創(chuàng)建工程會(huì)生成很多基礎(chǔ)文件,給工程用,不能改的,接下來定義活動(dòng)對(duì)象構(gòu)建狀態(tài)圖了 ,如下:
在工作區(qū)model上右擊創(chuàng)建package class statemachine(SM)等等構(gòu)件,然后雙擊SM進(jìn)入畫狀態(tài)圖的界面,如下 :
畫圖工具在右側(cè)面板,如下圖:
應(yīng)用畫圖工具,可以再狀態(tài)圖中繪制狀態(tài)機(jī),如下:
這里我們要點(diǎn)燈所以,安裝開燈狀態(tài),關(guān)燈狀態(tài)繪制這兩個(gè)狀態(tài),如下圖:
添加了一些觸發(fā)事件,例如TIMEOUT 到時(shí)間切換狀態(tài),接下來創(chuàng)建一個(gè).C文件,假如QP框架啟動(dòng)文件,注意$開頭的部分的代碼,這部分會(huì)被QM工具進(jìn)行重寫,類似我們的宏定義,如下圖:
單擊tools里面的generate code 進(jìn)行代碼生成,如下圖:
這時(shí)候我們用文本編輯軟件重新打開這個(gè).c文件,會(huì)發(fā)現(xiàn)$的部分全部被展開了,以我們繪制的狀態(tài)機(jī)為模板的方式,如下圖:
這時(shí)候我們的編碼進(jìn)完成了,接下來我們可以生成windows程序版本驗(yàn)證我們的點(diǎn)燈程序,如下操作,打開我們的CMD,怎么打開CMD就不講了哈,切換到我們的工程目錄,如下:
這是我們的工程目錄,如下有我們生成的.c文件,如下圖:
cmd中執(zhí)行如下命令:
這個(gè)時(shí)候進(jìn)入工作目錄,會(huì)看到.exe可執(zhí)行程序,如下圖:
雙擊運(yùn)行blinky.exe,運(yùn)行如下圖:
這時(shí)候會(huì)有人問為啥點(diǎn)個(gè)燈這么麻煩,其實(shí)點(diǎn)燈沒人會(huì)這么點(diǎn),但是當(dāng)你用點(diǎn)燈的方式來做嵌入式很多復(fù)雜的項(xiàng)目時(shí)候,隨著需求的增加,控制的復(fù)雜化,一個(gè)腦袋會(huì)有兩個(gè)大,這時(shí)候,假如你能想起來以前見過一個(gè)小白,寫了一篇關(guān)于quantum leaps量子編程的玩意兒,并且想要嘗試用它來他來重建你的軟件構(gòu)架,那這篇分享也就值了~!?。?/p>
再見~!