国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

程序越編越簡單(一)

2021-07-11 15:57 作者:GXTon_阿通  | 我要投稿

比如要編寫多個功放程序.

目前有三個型號: 功放a;功放b;功放c;

規(guī)則一,

對每個功放建立一個.c和.h文檔.

創(chuàng)建相應(yīng)的結(jié)構(gòu)體.


規(guī)則二,

建立一個程序中切換功放的接口程序.

建立一個功放Z的.c和.h文件.

所有的功放,a,b,c

無論選中了哪個功放,都要把數(shù)據(jù)復(fù)制給功放Z.

只有這樣參數(shù)給了Z,才會生效.

因為Z是最終的功放.


規(guī)則三,

從整體去看,

這個要結(jié)合你的程序整體.

因為功放是需要監(jiān)控的,就是你的程序需要發(fā)送和接收的.

編寫程序也就是從這兩部分入手.

首先看發(fā)送.

第一類:直接發(fā)送

這些發(fā)送指令都是一條語句.只要把這些指令寫死,然后對應(yīng)去發(fā)送就行了.

比如:

按綠燈:發(fā)送"打開功放"

按紅燈:發(fā)送"關(guān)閉功放"

按復(fù)位:發(fā)送"復(fù)位功放"

第二類:需要定期發(fā)送

還有一些是需要定期循環(huán)發(fā)送的

比如:

"心跳"包;

"獲取功放狀態(tài)"

這里就直接在程序主while中寫一個定時發(fā)送.

第三類:傳參指令

這一類就是在指令中有變量.

需要把變量寫進去,然后再發(fā)送.

比如:

定時開關(guān),我先把旋鈕擰到一定時長,然后再按下,

就開始按照我的倒計數(shù)分鐘數(shù)計數(shù).

這里倒計時的數(shù)字是我設(shè)置的,這就是一個變量.


總結(jié):

關(guān)于發(fā)送還會有很多情況......

?還需要結(jié)合實際,

要考慮一些特殊的情況,

比如:

兩個發(fā)送按鍵和復(fù)位按鍵同時按下.

就會同時發(fā)送兩條指令"打開指令"和"復(fù)位指令".

這兩條指令會不會有遺漏的情況.也就是如果程序不好,可能會只發(fā)送了其中一條指令.

還需要考慮功放能不能同時接受兩條指令.

有的時候外設(shè),

不接受兩條指令,比如單發(fā)"打開指令"或者單發(fā)"復(fù)位指令"都很好用.

但是兩個指令一起發(fā)送的時候,"打開指令 ,復(fù)位指令".

這樣有些功放可能會認(rèn)為錯誤.

這時就必須要在兩條指令之間加入延遲了.

這個時候就需要改變編寫程序的策略.


比如:

按下按鍵,或按下多個按鍵的時候,不進行直接的發(fā)送.

而是把對應(yīng)的發(fā)送標(biāo)志位置一.

然后,

在主循環(huán)while中進行輪詢檢測標(biāo)志位.

每次輪詢可以用計數(shù)器中斷進行計數(shù),達(dá)到某個值之后進行一次標(biāo)志位查詢.

這樣就實現(xiàn)了沒有delay的延遲.(可以提高程序運行效率這個后面講解)

然后,

檢測到一個打開功放按鍵按下的標(biāo)志位置一,就發(fā)送"打開指令".然后跳出.

下一輪接著檢測其他標(biāo)志位有沒有置一,如果復(fù)位標(biāo)志置一,就發(fā)送"復(fù)位指令".然后跳出.

因為每一輪都只響應(yīng)一個標(biāo)志位,

并且每一輪之間有若干個中斷計數(shù).

從而實現(xiàn)了每條發(fā)送指令之間都會有時間間隔.不會出現(xiàn)指令粘連的情況.


這里面其實還是可以設(shè)置一個緩存.

然后每次主循環(huán)中檢測緩存里面是不是按鍵按下.


上面就是發(fā)送指令了,

下面開始講解接收指令.

接收要和發(fā)送區(qū)分開來.

好的程序是:

接收就是只管接收,

發(fā)送就是只管發(fā)送.

當(dāng)然在很多情況下是不容易做到的.但是要向著這個方向去努力.

接收指令部分,

接收就很簡單了.

需要設(shè)置一個循環(huán)緩存,

如論收到什么,先不管,通通先存到緩存里面.

然后再主循環(huán)while中寫一個截取循環(huán)緩存數(shù)據(jù)的函數(shù).

比如摘取循環(huán)緩存中包頭和包尾之間的數(shù)據(jù).

這樣就可以接收到一條完整的指令了.







程序越編越簡單(一)的評論 (共 條)

分享到微博請遵守國家法律
苏尼特左旗| 呼玛县| 洞头县| 井研县| 剑川县| 财经| 黎平县| 醴陵市| 虞城县| 曲靖市| 岳阳市| 江都市| 杂多县| 垫江县| 苍南县| 达尔| 新丰县| 河曲县| 雅江县| 南昌市| 称多县| 循化| 科技| 龙井市| 九龙县| 紫阳县| 九台市| 咸丰县| 白水县| 大宁县| 安丘市| 湄潭县| SHOW| 宁波市| 安阳市| 册亨县| 阜新| 常熟市| 十堰市| 南充市| 昭通市|