會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





<新手發問>delay問題
新會員
註冊日期:
7月29日 16:08:01
所屬群組:
註冊會員
文章: 1
等級: 1; EXP: 0
HP : 0 / 0
MP : 0 / 0
離線
小弟最近剛使用PIC18F4550 並用xc8來寫 但在設定DELAY時他的輸出波型的週期並不正確
目前我是這樣寫的:
void Delay_ms(int x)
{
unsigned int i,j;
for(i=0;i<x;i++);
for(j=0;j<1000;j++);
}
請問這樣是正確的嗎? 如果不是請各位前輩指導一下
本身程式的基礎不太好 麻煩各位指教一下 感謝

9月30日 00:56:05
轉換PDF檔 列印


Re: <新手發問>delay問題
高級會員
註冊日期:
2008/04/13 16:02
所屬群組:
註冊會員
文章: 96
等級: 8; EXP: 78
HP : 0 / 194
MP : 32 / 5413
離線
Delay想準的話,還是用Timer吧
而且你也沒提到Clock source...

這顆好像有:
Timers 1 x 8-bit, 3 x 16-bit

可以試試MCC來產生初始的code啦,雖然這東西問題一堆
但MCC好像不支援這顆,參考這裡

看起來他們會推薦PIC18F45K50,但Timer操作應該類似,還是可以用MCC產生來看一下作法

9月30日 09:05:47
轉換PDF檔 列印


Re: <新手發問>delay問題
資深會員
註冊日期:
2007/08/13 14:27
所屬群組:
註冊會員
文章: 173
等級: 12; EXP: 21
HP : 0 / 280
MP : 57 / 8340
離線
xc8 有函式可以用

__delay_ms(10); // delay 10ms
__delay_us(10); // delay 10us

9月30日 10:30:27
轉換PDF檔 列印


Re: <新手發問>delay問題
資深會員
註冊日期:
2004/07/23 16:25
所屬群組:
註冊會員
文章: 1170
等級: 29; EXP: 88
HP : 0 / 722
MP : 390 / 27930
離線
你連你寫的code 會run 幾個指令都不知道

什麼叫輸出波型的週期並不正確???

輸出周期是正確的,只是你不知道正確的周期是多少

套用別人的簽名檔

程式是
依照寫出來(的code),跑出結果
不是依照你想出來的,得到結果

9月30日 23:30:10
轉換PDF檔 列印


Re: <新手發問>delay問題
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14125
等級: 72; EXP: 47
HP : 1072 / 1786
MP : 4708 / 70329
離線
引用:
for(i=0;i<x;i++);
for(j=0;j<1000;j++);


這兩行的迴圈就有問題了。

for(i=0;i<x;i++)
{
for(j=0;j<1000;j++);
}

這樣 j 的 Delay 才能做較久的 Delay.

當然這種 Dealy 方式是最基本的,但也最沒效率的方法。再多練習,自然而然就會知道還有更多更好的方法。

10月02日 11:32:49
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
線上教學影片
網頁捷徑
2017 Summer Elite 報名
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project