設計方案交流 首頁 / 論壇 / 自由討論 / 設計方案交流
正在爲尋找合適的設計方案急得團團轉?有好的設計方案卻苦於不被人知?設計方案交流專區致力於滿足電子設計方案交流的需求,藉由更多的溝通與方案搜尋,幫助工程師以更快速度完成產品的開發。
發表新主題  收藏 列印
問題: 你如何用C 寫一個Delay的FUNCTION? 發表時間: 2007/7/18 上午 10:01
 

提問者: 潛水艇

等級: 研發部副總

積分: 3418 分

發送消息

查看用戶的所有發言

以前我寫這個Delay,都是用for(int i = 0; i<0xFFFF;i++);
不過最近我看一個更有趣的寫法
int i = 0xFFFF;
while(i--);
不曉得各位大大都如何寫呢?
引用本留言 回覆主題 關注  推薦  鮮花 (
0
)
臭雞蛋 (
0
)
第 1 樓 回覆主題:你如何用C 寫一個Delay的FUNCTION? 發表時間: 2007/7/25 下午 5:05
 

提問者: Leo1224

等級: 鐘點工讀生

積分: 106 分

發送消息

查看用戶的所有發言

如果要更準確的計算delay時間,
可以用timer中斷(適用MCU…等)或系統時間(適用c++或vc…等)來做。
引用本留言 回覆主題
鮮花 (
0
)
臭雞蛋 (
0
)
第 2 樓 回覆主題:你如何用C 寫一個Delay的FUNCTION? 發表時間: 2007/8/6 上午 9:03
 

提問者: Scop

等級: 工程師

積分: 900 分

發送消息

查看用戶的所有發言

如果有hardware timer就用hardware timer, 不然就看OS有沒有提供software timer, 一般都至少有software timer, 除非OS還沒有起來, 或整個系統根本不會有OS... 不過應該可以抓一下system clock吧!!
Scop 編輯於 2007/8/6 上午 9:09
引用本留言 回覆主題
鮮花 (
0
)
臭雞蛋 (
0
)
第 3 樓 回覆主題:你如何用C 寫一個Delay的FUNCTION? 發表時間: 2007/8/9 下午 2:54
 

提問者: Samuil

等級: 實習生

積分: 377 分

發送消息

查看用戶的所有發言

判斷一數值是否為0的程式,比累加判斷的要更精簡高效率.
引用本留言 回覆主題
鮮花 (
0
)
臭雞蛋 (
0
)
第 4 樓 回覆主題:你如何用C 寫一個Delay的FUNCTION? 發表時間: 2007/8/17 下午 1:58
 

提問者: jmj

等級: 鐘點工讀生

積分: 173 分

發送消息

查看用戶的所有發言

我使用的結果是 delay 的 over head 很大.
平台: 11.059MHz 的 SM5964
函式 delay(n) 的實作: while(dly-- >0) ;
結果:
delay(10) 原意是 10 tick 的延遲, 但結果用組語一看, 絕對超過 20 us.
大部份的 overhead 都花在 MOV 在 branch_JMP 上,
若是像我寫成 function call 的形式, 則更花時間 (將近 60us).
因為又要再支付 call stack 和 return 的代價.
不曉得是否有較方便的小刻度 delay (非 timer 中斷 isr) 可用...?
引用本留言 回覆主題
鮮花 (
0
)
臭雞蛋 (
0
)
第 5 樓 回覆主題:你如何用C 寫一個Delay的FUNCTION? 發表時間: 2007/8/20 上午 11:35
 

提問者: max2003

等級: 實習生

積分: 318 分

發送消息

查看用戶的所有發言

1.用 assembly下去寫, 有機會增加一些效能吧.
2.要不就找 release library 看看有沒有解決方案
引用本留言 回覆主題
鮮花 (
0
)
臭雞蛋 (
0
)
發表新主題

維護專業、整潔的論壇環境需要您的參與,請及時舉報違規留言,如果舉報屬實,我們將給予相應的積分獎勵。
謝謝您的熱心參與!
返回設計方案交流 | 返回自由討論
本論壇僅陳述專家或個人觀點,並不代表電子工程專輯網站立場。
返回論壇首頁