欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
樓主: Similarv
打印 上一主題 下一主題
收起左側

請工程化,定制化你的單片機代碼

    [復制鏈接]
回帖獎勵 40 黑幣 回復本帖可獲得 2 黑幣獎勵! 每人限 1 次
361#
ID:915029 發表于 2021-7-29 11:13 來自觸屏版 | 只看該作者
Similarv 發表于 2020-1-13 16:52
你的做法當然也沒有問題,不過我是這么做的:
按鍵就只是做按鍵檢測,并且設置相應的“按鍵已觸發”標志 ...

想問樓主,key press time是怎樣和按壓按鍵時間聯系的,也就是按多長時間,time增加多少,這點我有點想不明白,是if(++key~press~time)這個語句嗎?
回復

使用道具 舉報

362#
ID:451287 發表于 2021-8-2 14:58 | 只看該作者
學到了新的編程思路,不用再DELAYMS(),浪費系統資源
回復

使用道具 舉報

363#
ID:957885 發表于 2021-8-2 21:33 | 只看該作者
我想問一下,這里的
“從微觀上看,單片機是沒法在同一時刻做2件事情的!所以,每到10ms的時候,單片機會”先把1ms的事情做完再做10ms的事“;每到100ms的時候,單片機會”先把1ms的事情做完再做10ms的事,再做100ms的事”
是不是一個單片機一個默認的優先級嗎?如果是這樣,那么有些程序中“忙則等待”是不是為了避免1ms的事到10ms時還沒做完,兩件事同時做而讓單片機死機嗎?
希望樓主解答
回復

使用道具 舉報

364#
ID:476527 發表于 2021-8-3 08:45 | 只看該作者
queen11 發表于 2021-7-29 11:13
想問樓主,key press time是怎樣和按壓按鍵時間聯系的,也就是按多長時間,time增加多少,這點我有點想不 ...

key_press_time是一個當某鍵被按下時,去數(第三聲)數(第四聲)的一個變量;
而這個變量所在的函數,是一個每1ms執行一次的函數,故而key_press_time每數一次數,按鍵就被持續按下了多少ms
回復

使用道具 舉報

365#
ID:476527 發表于 2021-8-3 08:47 | 只看該作者
小麥種子 發表于 2021-8-2 21:33
我想問一下,這里的
“從微觀上看,單片機是沒法在同一時刻做2件事情的!所以,每到10ms的時候,單片機會 ...

沒有你想的那么復雜,之所以是先做1ms的事在做10ms的事再做100ms的事,只是因為編寫代碼時,1ms的程序被放在了10ms的程序和100ms的程序的前面,你如果喜歡的話可以把100ms的程序放前面。
回復

使用道具 舉報

366#
ID:958310 發表于 2021-8-4 14:49 | 只看該作者
真是好文章啊
回復

使用道具 舉報

367#
ID:816988 發表于 2021-8-4 21:15 | 只看該作者
好帖子,學習中,樓主加油
回復

使用道具 舉報

368#
ID:958897 發表于 2021-8-5 20:34 | 只看該作者
初學者,受益良多!感謝
回復

使用道具 舉報

369#
ID:959049 發表于 2021-8-5 22:01 | 只看該作者
堪比教科書級別的文章
回復

使用道具 舉報

370#
ID:927469 發表于 2021-8-25 07:03 | 只看該作者
非常好的學習貼,謝謝分享
回復

使用道具 舉報

371#
ID:810999 發表于 2021-8-25 16:40 | 只看該作者
非常不錯,學習了。
回復

使用道具 舉報

372#
ID:585365 發表于 2021-8-26 11:02 | 只看該作者
雖然不是特別理解,但確實值得學習
回復

使用道具 舉報

373#
ID:382826 發表于 2021-8-27 19:06 | 只看該作者
收藏,學習了!
回復

使用道具 舉報

374#
ID:907347 發表于 2021-8-28 09:27 | 只看該作者
確實不錯,大家不要用無腦循壞了
回復

使用道具 舉報

375#
ID:854029 發表于 2021-8-29 16:59 | 只看該作者
雖然我看不懂,但還是覺得很厲害的樣子
回復

使用道具 舉報

376#
ID:569384 發表于 2021-8-31 09:06 | 只看該作者
delay有毒
回復

使用道具 舉報

377#
ID:78901 發表于 2021-11-13 17:44 | 只看該作者
真是定時延時的好文章
回復

使用道具 舉報

378#
ID:34149 發表于 2021-11-15 16:49 | 只看該作者
謝謝,老師的指導!
回復

使用道具 舉報

379#
ID:624685 發表于 2021-11-15 17:16 | 只看該作者
看完還是有點糊涂,努力學習
回復

使用道具 舉報

380#
ID:980153 發表于 2021-11-16 09:25 | 只看該作者
謝謝分享,真的是好資料!
回復

使用道具 舉報

381#
ID:927850 發表于 2021-11-16 10:23 | 只看該作者
學習了,非常不錯的文章
回復

使用道具 舉報

382#
ID:384081 發表于 2021-11-17 08:43 | 只看該作者
高手,膜拜了
回復

使用道具 舉報

383#
ID:410182 發表于 2021-11-22 15:33 | 只看該作者
多謝樓主分享!有空的話能再分享一些嗎
回復

使用道具 舉報

384#
ID:254747 發表于 2021-11-24 17:20 | 只看該作者
if(++key_press_time <=0 ) --key_press_time; 這句我理解不了 哪個大師給我將一下  怎么加了又減啊 是防止數據溢出嗎  能講一下嗎   

回復

使用道具 舉報

385#
ID:254747 發表于 2021-11-24 17:21 | 只看該作者
這個帖子安逸   我這幾天就到處找 怎么把按鍵的 while()這個檢測給干掉  沒有想到在這里看到了  現在我寫的程序都不用 delay了 哈哈哈
回復

使用道具 舉報

386#
ID:984566 發表于 2021-11-25 11:09 | 只看該作者

很不錯的文章,啟迪匪淺。
回復

使用道具 舉報

387#
ID:548757 發表于 2021-11-25 17:49 | 只看該作者
兩年多!眾望期待更新!!!!!
回復

使用道具 舉報

388#
ID:875095 發表于 2021-11-27 17:04 | 只看該作者
入門必備啊,寫的好
回復

使用道具 舉報

389#
ID:59830 發表于 2021-11-27 18:43 | 只看該作者
不錯的知識點,值得初學者學習.
回復

使用道具 舉報

390#
ID:964852 發表于 2021-11-28 10:29 | 只看該作者
大師,更新下,正好想學習下狀態機
回復

使用道具 舉報

391#
ID:509408 發表于 2021-11-29 17:27 | 只看該作者
不同的功能函數可以單獨定義一套自己的計時時基變量(通常是1ms)、調用標志、內部子步驟執行號(step)等等。其中把時基變量放進定時器里面累加或遞減,一些你想要共享給外部調用數據可以定義成全局變量、方便獨立調試排除問題。 以下是我常用的程序框架 (這里隨便放了一段)
void Demon_B(void)  {
    if(lgRunTime_B <cTimes_B)     return;        //定時時間未到 return不往下執行。
    {
        lgRunTime_B = 0;        //定時時間清0
        if(FLAG_B & SET_Flow1){        //需要演示的標志立起?

          if(cgStep_B==0){       //步驟0
             //執行代碼
            cTimes_B = 10;    //延時10ms  
        }else if(cgStep_B==1){   //步驟1
            //執行代碼  
           cTimes_B = 1000;//延時1000ms   
       } else{;}
         if(++cgStep_B>5)     cgStep_B = 0;        //步驟號大于5
      }}}
按照這樣思路創建不同功能的ABCD函數(名字懶得取-_-),每個函數有自己的獨立延時而不會引起干擾動作。執行步驟號中也可以塞入一些帶返回值函數、其他功能的全局變量、標志什么的 if 判斷一下,不符合就簡單粗暴的return掉,前提是你自己的邏輯思路要清晰,原則上應盡量減少函數之間的耦合以提高效率。最后主調函中用 FLAG_B 標志調用或關閉它們,很方便靈活。
回復

使用道具 舉報

392#
ID:254747 發表于 2021-11-29 17:31 | 只看該作者

哪位大哥給我講一下哦     是不是 殘值  就比如  用戶隨便按了一下  保留的值在里面    后面自己清理了
回復

使用道具 舉報

393#
ID:965189 發表于 2021-11-29 22:06 | 只看該作者
好料,是我等初哥學習的好東西。
回復

使用道具 舉報

394#
ID:476527 發表于 2021-11-30 09:12 | 只看該作者

是防止它溢出,限制它只往上加,加到最大之后就不再增加
其實這個代碼我一般不這么寫的,這案例是我把我經常用的 宏函數 給展開了:

#define JINC(x) if(++x <= 0) --x  //自增x,且不使其溢出

這樣定義一個宏之后,以后凡是只想進行 “變量自增”操作又不想要變量溢出的時候,只要直接用這個宏就好啦。
例如本案例的源碼其實是:

JINC(key_press_time);
回復

使用道具 舉報

395#
ID:254747 發表于 2021-11-30 09:56 | 只看該作者
Similarv 發表于 2021-11-30 09:12
是防止它溢出,限制它只往上加,加到最大之后就不再增加
其實這個代碼我一般不這么寫的,這案例是我把我 ...

非常感謝指導  謝謝  
回復

使用道具 舉報

396#
ID:969161 發表于 2021-11-30 22:12 | 只看該作者
好資料,好文章。
回復

使用道具 舉報

397#
ID:969161 發表于 2021-11-30 23:30 | 只看該作者
這個資料讓我增長很多思路,寫代碼有明顯提高了。
回復

使用道具 舉報

398#
ID:986929 發表于 2021-12-2 16:15 | 只看該作者
受益匪淺
回復

使用道具 舉報

399#
ID:89841 發表于 2021-12-3 09:50 | 只看該作者
很好的文章,請繼續。感謝!
回復

使用道具 舉報

400#
ID:496566 發表于 2021-12-3 19:56 | 只看該作者
好教程,51黑有你真精彩!!!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表