音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

好的程序看門狗只需要喂一次嗎?

作者:blueboyjf 欄目:單片機
好的程序看門狗只需要喂一次嗎?
ATMEGA16寫了2000多行的程序,自以為寫的還不錯。結(jié)果經(jīng)理一看,就說,你的程序我沒看懂,不過,看你到處“喂狗”,就不是好程序。好程序,只要一次喂狗就好了。

以前似乎也聽有人這樣說過。對操作系統(tǒng)的原理還不是太懂,也沒用操作系統(tǒng),。經(jīng)理說程序要分任務(wù),沒有操作系統(tǒng)就一個一個任務(wù)的做,循環(huán)一次不會花很多時間,喂一次狗就好了。

感覺經(jīng)理說的應(yīng)該是對的。但是真要寫出只喂一次狗就行的長程序來,好像也不太簡單。

大家對只喂一次狗有什么樣的看法?
有人像我一樣頻繁多次多處喂狗嗎?

2樓: >>參與討論
12864
他說的沒錯
不過我覺得不一定是一處,可以是幾處,但最好不要滿世界喂狗,因為這樣明顯表現(xiàn)出你對自己設(shè)計的系統(tǒng)沒法掌控,領(lǐng)導(dǎo)看了會心情暗淡的。

3樓: >>參與討論
yewuyi
還有好的程序根本就不“殺狗”的呢
例如,很多低功耗產(chǎn)品……

4樓: >>參與討論
夏蟲
不必每個函數(shù)中都喂狗,感覺沒必要,估算程序跑一遍的時間
不必每個函數(shù)中都喂狗,感覺沒必要,估算程序跑一遍的時間,在幾個函數(shù)中喂一次就行

5樓: >>參與討論
后學(xué)
沒錯兒,在主循環(huán)喂一次狗就可以了~
1、如果你在中斷中喂狗,那么狗就沒有什么用了;
2、如果你的主循環(huán)循環(huán)一次的時間大于狗的復(fù)位時間,說明你的程序結(jié)構(gòu)有問題;

所以,一般的程序在主循環(huán)喂一次狗就行了
當然,特殊情況,區(qū)別對待

6樓: >>參與討論
ketp
-
不在中斷里喂的話,如果是ATMEL的內(nèi)狗(13ms ,12m)恐怕很難做到

7樓: >>參與討論
程序匠人
好的程序主循環(huán)里的指令應(yīng)該不超過10條指令
 
8樓: >>參與討論
computer00
呵呵,在主函數(shù)里就調(diào)用一個函數(shù),然后再慢慢展開~~~~~
 
9樓: >>參與討論
wwwzhang
為什么不能在中斷中喂狗。
 
10樓: >>參與討論
12864
匠人,10條怎么行啊,你的任務(wù)隊列都放在哪里了?
 
11樓: >>參與討論
epwwm
10條怎么行啊?這是不是應(yīng)該看看堆棧的深度!
 
12樓: >>參與討論
blueboyjf
那我完了
我現(xiàn)在程序里到處都在喂狗,估計有幾十次了
頭一次寫這么復(fù)雜的程序,而且是一個人搞,沒有可以商量的人,真郁悶

有時間再把程序結(jié)構(gòu)好好弄弄。

主循環(huán)10句話是怎么搞定的?什么樣的結(jié)構(gòu)呢?
各位大俠擺幾個pose給俺們開開眼好不好?

13樓: >>參與討論
程序匠人
說明一下:10條是一個概念
可能對于一些大些的項目,10條不夠。但這里講的是一個概念,不可鉆文字上的牛角尖

我的許多程序都是這樣的:

MAIN:
    WDTC                        ;(喂狗)
    CALL  DISPALY_CNT
    CALL  KEY_CNT
    CALL  AD_CNT
    CALL  OUTPUT_CNT
    CALL  ......
    ......
    JMP MAIN


main()
{
    asm_ wdtc;             //喂狗
    display_cnt();
    key_cnt();
    ad_cnt();
    ......
    ......

}

14樓: >>參與討論
程序匠人
主程序(主函數(shù))的作用相當于調(diào)度室
自己不干活,指揮人家干就行了,所以,主程序(主函數(shù))里不該有具體功能性的指令(語句)。這樣做的話,結(jié)構(gòu)比較清晰

15樓: >>參與討論
12864
簡單的執(zhí)行機構(gòu)是否應(yīng)該這樣
main()
{
initial_XXX1();
initial_XXX2();
initial_XXX3();
...
initial_XXXN();

// task operator
while(true)
{
   if(need_XX1)
   {
      need_XX1 = false;
      XX1();
   }    
   if(need_XX2)
   {
      need_XX2 = false;
      XX2();
   }
   ......

   if(need_XXN)
   {
      need_XXN = false;
      XXN();
   }    

   watch_dog();   // MICRO function
   sleep();       // ..
}


}

之所以將標志判斷也放在main中,是因為別到了對應(yīng)函數(shù)才發(fā)現(xiàn)沒自己的事,出入都是一堆push/pop...

16樓: >>參與討論
程序匠人
12864的思路是對的
 
17樓: >>參與討論
Waffle
請問程序匠人
請問程序匠人,如果你主程序里調(diào)用的display_cnt()等函數(shù)執(zhí)行時間比較長,怎么辦?

18樓: >>參與討論
程序匠人
答Waffle:可以分時間片執(zhí)行
比如:如果是掃描LED數(shù)碼管,可以每次只掃描一位數(shù)碼管

19樓: >>參與討論
Waffle
那不是要用到操作系統(tǒng)了?
那不是要用到操作系統(tǒng)了?

20樓: >>參與討論
lg8213
程序匠人說得對
對于時間長的函數(shù)分幾次來完成,省時,提高整個程序的掃描速度.
對于比較大的程序:
主程序中也可以分幾次來完成一次程序的更新:第一次掃鍵,每二次刷新顯示,第三次.....

21樓: >>參與討論
along_yu
根據(jù)具體情況來看吧?說不好的……
 
22樓: >>參與討論
blueboyjf
學(xué)習(xí)中
今天特意數(shù)了數(shù),我的C程序2700行多,喂狗的地方有110處之多

主要是程序開始的架構(gòu)沒搞好,后來程序越加越復(fù)雜,喂狗就越來越多了。

匠人的思路我理解了,準備試試,把程序改改。

痛苦啊!

23樓: >>參與討論
程序匠人
暈!喂狗的地方有110處之多?
看樣子要把丐幫的打狗辦法好好學(xué)學(xué)了,哈哈

24樓: >>參與討論
goodygx
如果它沒有用的價值,我是不會用的。
 
25樓: >>參與討論
foxfox
每次看大俠的帖子都長見識了,lg8213大俠可不可以舉個例程。
 
26樓: >>參與討論
lufeijian
嚴重同意!一般喂一次就行了!
 
27樓: >>參與討論
李冬發(fā)
凡事不能教條,走極端
 
28樓: >>參與討論
zyf_0210
看程序執(zhí)行的時間
看門狗多長時間不喂狗會復(fù)位,每個型號的器件都要要求的,如果你的程序能在這個時間內(nèi)能執(zhí)行一個循環(huán),那么一次就可以了

29樓: >>參與討論
fsaok
等待類子程序
某些程序,比如是等待一個按鍵的程序,加一個喂狗程序。

有人說,這種阻塞型程序要盡量減少,

但改為非阻塞型的函數(shù),是否對整個系統(tǒng)的調(diào)試負擔(dān)增加呢?

請高手指點

30樓: >>參與討論
陳雙君
我還沒有喂過呢
我還沒有喂過呢/

31樓: >>參與討論
pkkkkp
程序要是不是很大的話,也用不太到狗
 
32樓: >>參與討論
water2005
hehe
沒太看懂

33樓: >>參與討論
夢雅
程序匠人的話好經(jīng)典
程序匠人的話好經(jīng)典

34樓: >>參與討論
leo1858
對哦,但對于很致命的子循環(huán)咳還是應(yīng)該相應(yīng)的“喂狗”
對哦,估計出程序的最大運行時間就可以了,但對于很致命的子循環(huán)咳還是應(yīng)該相應(yīng)的“喂狗”

35樓: >>參與討論
zyp898989
分時間片執(zhí)行會占用大量的ram存儲斷點信息
 
36樓: >>參與討論
gwnpeter
super loop 結(jié)構(gòu)
一般只需一次喂狗

37樓: >>參與討論
born
我的程序大部分功能都在定時器中斷里完成
喂狗只在  主循環(huán)開頭喂一次,按鍵處理 什么的  都在定時器中斷完成


38樓: >>參與討論
250638jlh
也不一定
喂不喂狗,那要看它咬不咬你啦。如果你的程序長的話,或者說復(fù)雜的話,那狗狗會追上你的。所以你要知道狗狗跑的速度,它追不上你(即你的程序用時間較短),那我看就不用喂狗了,如果頻繁喂狗,一方面沒必要另一方面浪費時間。

39樓: >>參與討論
zyp898989
亂喂狗,狗就失去了它的存在意義了
 
40樓: >>參與討論
hb923
我程序測試時候都是取消狗功能的
如果在良好的環(huán)境下都能跑飛,這種芯片我還不敢用。這樣也能更好的找程序的問題。

41樓: >>參與討論
wwwzhang
請問匠人,如何把時間長的函數(shù)分幾次來完成
請問匠人,如何把時間長的函數(shù)分幾次來完成,能否提供一個例子作為參考

42樓: >>參與討論
HIGHWAY
一般情況喂一次就可以了,但在某些檢查外設(shè)狀態(tài)或
自檢查時我會放置

43樓: >>參與討論
goodygx
不該用就不用
除非干擾嚴重使用它,除非有特殊用途,其余就不該用.

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
(求助)使用單片機做界面所遇到的問題
如何保證元件的質(zhì)量??
請教一個關(guān)于VB的問題,謝謝!
用單片機給FLASH寫字庫方法求教!
有誰正在用三菱M16c/62的單片機? 可否給小弟一個學(xué)習(xí)的例程
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號