Re: [問題] C++求救!不知道問題在哪裡!!
※ 引述《wayn12342000 (阿菁)》之銘言:
: ※ [本文轉錄自 C_and_CPP 看板]
: 作者: wayn12342000 (阿菁) 看板: C_and_CPP
: 標題: [問題] C++求救!不知道問題在哪裡!!
: 時間: Sat Jul 18 21:40:13 2009
: 目前正在進行專題,
: 遇到一個很奇怪的問題,
: 我描述一下情況:
: 目前從學長那繼承一個由伺服馬達控制的機器人,
: 原有的控制方式是組語,
: 後來改用C控制,
: 但發生副程式無法動作的情況,
: 下面是控制方式
: 範例(組語):
: 略...
: mov r2,#50 ;給值50
: loop0:
: mov p2,00000001;丟值進P2.0 控制motor1
: call delay15 ;延遲1.5ms(角度一)
: mov p2,00000010;丟值進P2.1 控制motor2 同時將P2.0值=0
: call delay20 ;延遲2.0ms(角度二)
: call delay200 ;延遲20ms (滿足週期 驅動馬達動作)
: djnz r2,loop0
: 略...
: 註:伺服馬達的控制是給予一小段特定時間脈波(1.5ms 2.0ms...
: 並於滿足週期後向著目標角度進行一動(視馬達而定...
: 給予足夠迴圈就可以移至正確角度位置(r2=50...
: 簡單介紹後進入正題,
: 目前寫出來的C是
: 略....
: void hd1( int );宣告各部位副程式 頭
: void lh2( int ); 手
: 略...
: main()
: {
: int i;
: for(i=0;i<50;i++)
: {
: hd1( 45 );要求移向的角度
: }
: for(i=0;i<50;i++)
: {
: lh2( 45 );
: }
: }
: void hd1( int angle )
: {
: p1=00000001;
: angledelay( angle );
: }
: void lh2( int angle )
: {
: p1=00000010;
: angledelay( angle );
: }
: void angledelay( int angle )
: 略...
: 問題開始!!
: 在原先測試的時候發現robot像中風一樣一直抖...抖...抖...
: 轉而用這個簡易程式測試
: 結果發現各種交叉測試
: 1.交換馬達
: 2.交換程式位置(考慮定義先後
: 3.改變輸出port點
: 都無法使lh2這個副程式正常動作
: 但hd1完全正常!!!
: 但hd1完全正常!!!
: 但hd1完全正常!!!
: DEBUG到目前為止並無發現任何硬體上的錯誤以及軟體上直接的錯誤
: 是有什麼隱規則被忽略掉了嗎?
: 這兩個副程式只差在一個叫hd1 一個叫lh2
: 但結果是天差地別
: 請問各位高手有什麼辦法嗎??
再次說明問題點
目前有的東西:hd1副程式 lh2副程式 P1.0 P1.1 motor1 motor2
測試一: hd1=>P1=0000 0001 motor1接到P1.0 結果 會動
lh2=>P1=0000 0010 motor2接到P1.1 結果 不會動
測試二: hd1=>P1=0000 0001 motor2接到P1.0 結果 會動
lh2=>P1=0000 0010 motor1接到P1.1 結果 不會動
測試一及測試二證實了馬達沒有問題
測試三: hd1=>P1=0000 0010 motor1接到P1.1 結果 會動
lh2=>P1=0000 0001 motor2接到P1.0 結果 不會動
測試四: hd1=>P1=0000 0010 motor2接到P1.1 結果 會動
lh2=>P1=0000 0001 motor1接到P1.0 結果 不會動
測試三及測試四再次證實了馬達沒有問題
測試一及測試三證實了接點(P1.0 P1.1)都沒有問題
hd1 及 lh2 這兩個副程式差別在哪裡呢
答案是只有差在名稱不一樣而已
一樣的過程 一樣的宣告 只有不一樣的名字
我用的是keil C 寫的是C語言
跪求高手解答了!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.126.120.102
推
07/18 22:53, , 1F
07/18 22:53, 1F
→
07/18 22:54, , 2F
07/18 22:54, 2F
→
07/18 22:57, , 3F
07/18 22:57, 3F
→
07/18 22:57, , 4F
07/18 22:57, 4F
推
07/18 22:58, , 5F
07/18 22:58, 5F
→
07/18 22:58, , 6F
07/18 22:58, 6F
→
07/18 22:58, , 7F
07/18 22:58, 7F
→
07/18 22:59, , 8F
07/18 22:59, 8F
→
07/18 22:59, , 9F
07/18 22:59, 9F
→
07/18 22:59, , 10F
07/18 22:59, 10F
→
07/18 23:00, , 11F
07/18 23:00, 11F
推
07/18 23:22, , 12F
07/18 23:22, 12F
→
07/18 23:23, , 13F
07/18 23:23, 13F
→
07/18 23:24, , 14F
07/18 23:24, 14F
推
07/19 00:11, , 15F
07/19 00:11, 15F
→
07/19 00:12, , 16F
07/19 00:12, 16F
推
07/19 00:13, , 17F
07/19 00:13, 17F
推
07/19 00:16, , 18F
07/19 00:16, 18F
→
07/19 00:17, , 19F
07/19 00:17, 19F
→
07/19 00:18, , 20F
07/19 00:18, 20F
推
07/19 00:56, , 21F
07/19 00:56, 21F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):
ASM 近期熱門文章
PTT數位生活區 即時熱門文章