全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1312
推到 Plurk!
推到 Facebook!

RETURN 問題

尚未結案
superskygod
一般會員


發表:4
回覆:2
積分:1
註冊:2008-10-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-01-14 18:37:04 IP:163.22.xxx.xxx 訂閱
我想請問一下
我的程式碼中
因為我是控制套件
所以很多東西是廠商所定義的LIB

但是在下面的程式碼中(節錄一部份)
我不曉得問題出在哪?
只要是一按鈕按下去
就會當機
除非在 dxl_txrx_packet(); 下一行加上 return;
不過ㄧ加上 return; 時
return; 底下的程式碼就不會執行

想請問我的程式哪裡有錯誤?!

感謝

[code cpp]
void __fastcall TForm1::Button15Click(TObject *Sender)
{

......
.......

RUN:
while(PresentPos<160)
{
dxl_set_txpacket_id(BROADCAST_ID); //一串封包
dxl_set_txpacket_instruction(INST_SYNC_WRITE);
dxl_set_txpacket_parameter(0, P_GOAL_SPEED_L);
dxl_set_txpacket_parameter(1, 2);

dxl_set_txpacket_parameter(2, 1);
dxl_set_txpacket_parameter(3, dxl_get_lowbyte(1279));
dxl_set_txpacket_parameter(4, dxl_get_highbyte(1279));
dxl_set_txpacket_parameter(5, 2);
dxl_set_txpacket_parameter(6, dxl_get_lowbyte(1279));
dxl_set_txpacket_parameter(7, dxl_get_highbyte(1279));
dxl_set_txpacket_parameter(8, 3);
dxl_set_txpacket_parameter(9, dxl_get_lowbyte(256));
dxl_set_txpacket_parameter(10, dxl_get_highbyte(256));
dxl_set_txpacket_parameter(11, 4);
dxl_set_txpacket_parameter(12, dxl_get_lowbyte(256));
dxl_set_txpacket_parameter(13, dxl_get_highbyte(256));

dxl_set_txpacket_parameter(14, dxl_get_lowbyte(133));
dxl_set_txpacket_parameter(15, dxl_get_highbyte(133));
dxl_set_txpacket_length((2 1)*NUM_ACTUATOR 4);

dxl_txrx_packet(); //傳送封包
return; // 在上面的dxl_txrx_packet(); 後,如不加上,程式將會當機!
,加上後,下面 if 的判斷式將不會執行。該如何是好?//
}

if ( SUM>10000)
......
......
[/code]
編輯記錄
superskygod 重新編輯於 2009-01-15 00:34:20, 註解 RETURN問題‧
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-01-14 19:50:11 IP:118.169.xxx.xxx 訂閱
你用這樣的方式問,我想這問題應該會石沉大海
要怎麼複製出你的問題?
下斷點找出問題點,然後想辦法用最精簡的程式來描述你的問題
編輯記錄
taishyang 重新編輯於 2009-01-14 19:51:00, 註解 無‧
superskygod
一般會員


發表:4
回覆:2
積分:1
註冊:2008-10-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-01-15 00:35:23 IP:218.163.xxx.xxx 訂閱
感謝版主提醒
我已改善過! 希望這樣會較簡潔!
frontier
初階會員


發表:0
回覆:27
積分:30
註冊:2008-11-20

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-01-15 09:41:48 IP:59.125.xxx.xxx 訂閱
先確認沒使用 return; 時有跳離 while(PresentPos<160) 回圈吧!
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-01-15 23:05:51 IP:60.248.xxx.xxx 訂閱
while 裡沒看到有任何改變PresentPos值的敘述,不知你要如何讓它脫離迴圈??!!

還是你的程式碼沒貼完整?
------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
superskygod
一般會員


發表:4
回覆:2
積分:1
註冊:2008-10-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-01-17 23:24:58 IP:218.163.xxx.xxx 訂閱
在沒有使用RETURN的時候,WHILE會跳離!

我的程式碼沒有貼完整
PresentPos 是個整數,我使用INI 寫入與讀取 來讓他跳離~
系統時間:2024-11-23 4:10:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!