Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
樓主: ffffff2641
打印 上一主題 下一主題

關於控制問題??

[複製鏈接]
61#
發表於 2007-8-21 10:53:55 | 只看該作者
B部份的程式:
上次在 roboot>>>SOS 第58帖 提到的部份你還未有改好啊!
MOV COUNT,A
LOOP2:
MOV R4, #0AH ;10次
LOOP3:
NOP ;每個 nop 延時 1us (t1)
NOP ;每個 nop 延時 1us (t2)
DJNZ R4,LOOP3 ;R4=0時跳下一行 (t3) <=== 連這一句計 (t1+t2+t3) 總數是 4us 。
DJNZ COUNT,LOOP2 ;將PWM LOW的值乘以40us
MOV CUT,#0 ;因為T0中斷給兩個副程式使用,所以CUT累加在此須清除
RET

你現在寫在 DEL_L 和 PULSE_WIDTH 內的是 無限循環啊。你看到這差異嗎?
正確的寫法:
LOOP2:
           MOV R4,#0AH
                   ;10次  

LOOP3:
           NOP                                   ;每個 nop 延時 1us
           NOP
           DJNZ R4,LOOP3
                ;R4=0時跳下一行=>(1us+1us+2us)X10 = 40us
          DJNZ COUNT,LOOP2         ;將PWM LOW的值乘以40us         
           MOV CUT,#0                      ;因為T0中斷給兩個副程式使用,所以CUT累加在此須清除         
  RET

[ 本帖最後由 irobot 於 2007-8-21 10:57 編輯 ]
62#
發表於 2007-8-21 14:20:03 | 只看該作者

回覆irbot 大大

因為我腦袋空空阿 ,想不出啥新玩意兒,只是對機器人蠻感興趣的,剛好這邊又有圖.程式(電路還算簡單@Q@),就來作囉~想說起碼要先能這樣,不然要像板上的大大們能DIY出機器人應該更難

C部分OK囉~,照您說的測試是OK的~,那就麻煩您幫我試試看D部分囉 ,B部分的程式還要改這邊:
PWM_WIDTH:
MOV COUNT,@R0
LOOP1:
;SETB TR0 ;開啟T0計數器
;CLR TR0 ;關閉T0計數器
MOV R4,#0AH ;10次
LOOP4:

NOP  ;每個 nop 延時 1us
NOP
DJNZ R4,LOOP4  ;R4=0時跳下一行=>(1us+1us+2us)X10 = 40us,此行本身要2us
           
DJNZ COUNT,LOOP1 ;將PWM的值乘以40us         
MOV CUT,#0 ;因為T0中斷給兩個副程式使用,所以CUT累加在此須清除         

MOV PWM,@R0 ;將R0的值交給DEL_L去取LOW的時間
INC R0 ;找下一個PWM的位置
RET

因為其實這兩個很像,都是在計時的部分,然後我TABLE的部分也改了一下,暫時讓每個輸出都呈現一樣的DW,
目前修改的結果是OK囉~,跟之前用計時中斷寫的效果一樣,這都要感謝您~  
63#
發表於 2007-8-21 18:45:57 | 只看該作者
D 部份已經測試完成,軟件在 XP 下工作正常。下面顯示一些截圖。
要打入了很長的 path name呢,成功取得 ProcessID 。(圖1)
注意: 此時digitrac.exe 自動開啟了(圖2)。
在把setting 內選定監察 channel 1, 和 取樣 32768 (忘了告訴你,這是最高取樣率) (圖3)
縮少比例後可以看到 channel 1 有想要的訊號。channel 2 至 8 因為懸空了所以有隨機的訊號,可以不理。(圖4)
channel 1 的訊號我有用 聲效卡CRO 重新量度,兩者的結果是一致的。訊號週期是 19.23ms, pulse width 是 1.38 ms。
希望這些測試可以對你有幫助和能夠收窄問題的範圍。
下圖是我以前做實物前用麵包版測試的情況給你作個參考。試了一次便成功了。注意:logic analyzer 的電源是從 LPT1取的(紅線正、黑線地),圖中的電池只供電給 MCU。但它們的地線則共接。


[ 本帖最後由 irobot 於 2007-8-21 19:16 編輯 ]

digitrace_1.jpg (90.13 KB, 下載次數: 120)

圖1

圖1

digitrace_2.jpg (52.94 KB, 下載次數: 123)

圖2

圖2

digitrace_3.jpg (60.75 KB, 下載次數: 124)

圖3

圖3

digitrace_4.jpg (77.42 KB, 下載次數: 132)

圖4

圖4
64#
發表於 2007-8-21 23:40:56 | 只看該作者

回覆irobot 大大

我想說....感謝您花了這麼多時間教我,提供我意見,幫我很多很多...
可是無能的我還是沒有成功 ,我怎麼樣都看不到波形...,而且第一次開啟的時候還是有我之前跟您提到的錯誤訊息...
哀...,總覺得已經沒有可以找的問題了...,可能是我的腦袋瓜的問題~哈哈...
而且有點怪怪的就是說:我是用耳機線用頻率產生軟體產生訊號的...,但是不論我把插頭拔掉或是讓軟體STOP它的白色方塊還是在閃爍(有接訊號的channel)

[ 本帖最後由 zirok 於 2007-8-21 23:49 編輯 ]
65#
發表於 2007-8-22 00:09:12 | 只看該作者
okay!! 要有耐心慢慢來。
關於 D 部份,我不是很明白你的意思。你是否從來也不可以出到像圖1的畫面呢。可否截一個圖看看。
截圖軟件
http://www.wisdom-soft.com/downloads/setupscreenhunterfree.exe
ps:但你在第38樓的帖子明明是成功的啊。

我這測試是用取樣一次方式的。你有用 digitrace 內的 Zoom 按鈕縮小比例吧,否則是看不到波形的。
這情況也有可能是頻率產生器的問題,因我的測試不是用它(我的線用來做了CRO);而是直接用 mcu 產生訊號的。

所以若 A, C 和 D 部份(在38帖是okay) 沒有問題,你便有東西可以試了。你不是說可以讓 89s51 在指定的腳位 點著 和 熄滅 led 燈的嗎? 你可否寫一個 控制一盞 led 燈用 1000 Hz 亮和熄 的簡單程式,然後用來測試你的 logic analyzer 呢? 長著的燈是要比 1000 Hz 的光亮,所以用 led 已可大致知道程式有否方波產生了。你要加油啊!!

下圖是我的測試情況(雖然也很狹窄,但比你說的 "阿...一直蹲著好累(電腦在地上=.=..)," 我是太幸福了 )

[ 本帖最後由 irobot 於 2007-8-22 00:30 編輯 ]

Cimg2004.jpg (629.21 KB, 下載次數: 151)

Cimg2004.jpg
66#
發表於 2007-8-22 01:08:06 | 只看該作者

回覆irobot 大大

謝謝您的鼓勵,圖的部分我明天早一點起來弄吧...(我很懶...也怕因失敗懊惱 )
您也早點休息吧~

38樓我表達的不夠清楚SORRY ,那個時候我還沒有PORTTALK22這個軟體,
那時我的意思是用這個成功的開啟了 ,也以為可以看波形囉(所以就在那邊自HIGH...別見怪XD)

程式的部分OK阿,反正我有書...沒書的話要我寫大概會漏很多東西=.=....就先這樣吧~.~ 屋~晚上會作惡夢
67#
發表於 2007-8-22 09:16:17 | 只看該作者

回覆irobot 大大

請問"長著的燈是要比 1000 Hz 的光亮"這句是指??能說清楚一點嗎?
我正在寫程式不過要去看個醫生...,1000HZ的話好像看不到"亮"."暗" ,回來的話我打算先把頻率降低看看,暫時先這樣  感謝您
68#
發表於 2007-8-22 09:56:42 | 只看該作者
就你在38樓的畫面,你的確在 xp 內成功開啟了 porttalk 和 digitrac.exe 這軟件。這部份你與我的測試條件是一樣的,所以可以排除是軟件的問題了。而你的 ic 亦沒有問題,剩下來的只有:
1. 你電腦的 LPT1 是否肯定正常
2. 你的 IC 與 PARALLEL PORT 的接線 是否正確。(只能假設你是正確,最好在 PARALLEL PORT 的接頭上來個照片便清楚了)
3.  可能是 FREQ GENERATOR   的問題,所以等你寫好程式後,你我的測試環境便是一樣的。
若 LED 接 MCU +5V 輸出腳,它是很亮的,若 接的輸出腳是 +5V 和 0V 交替變化的,則它會較暗的。

[ 本帖最後由 irobot 於 2007-8-22 10:14 編輯 ]
69#
發表於 2007-8-22 11:51:34 | 只看該作者

回覆irobot 大大

SORRY 讓你等那麼久=.=,我還在寫...哈哈...我好像迴圈那邊會寫錯... 喔喔,那我懂了...不過我現在先試試看1s的亮滅...如果ok的話改成1khz相信就會容易多了 我看了我前面的帖子,還真的忘了附上照片@q@,照騙裡有我之前測試的照片(用FREQ GENERATOR的 ) 因為程式還沒寫好所以先放幾張照片,晚一點在放程式弄好的測試照片

[ 本帖最後由 zirok 於 2007-8-22 12:10 編輯 ]

有圖為證~1.bmp (2.25 MB, 下載次數: 208)

用了程式後~已開啟digitrace

用了程式後~已開啟digitrace

有圖為證~.bmp (2.25 MB, 下載次數: 169)

尚未用頻率程式~digitrace開啟中

尚未用頻率程式~digitrace開啟中

CIMG0328.JPG (1.67 MB, 下載次數: 140)

紅線是+vcc

紅線是+vcc

CIMG0329.JPG (1.63 MB, 下載次數: 139)

灰線是gnd

灰線是gnd

CIMG0330.JPG (1.7 MB, 下載次數: 130)

有三張圖...看不清楚我再拍~@q@

有三張圖...看不清楚我再拍~@q@
70#
發表於 2007-8-22 11:58:59 | 只看該作者
密切關注中!!
71#
發表於 2007-8-22 12:58:43 | 只看該作者
程式總算弄好拉...花了兩個多小時...(真受不了我自己=.=),可能是我沒弄好還是怎樣,
去參考一下其他人程式發現我少一個delay...,改完就好了 ,先來去睡一下...,不用密切關注拉~
給我些意見就好哩~
72#
發表於 2007-8-22 14:12:06 | 只看該作者
你銲接得很好啊!! 接頭看來是絕對沒有問題的。
但你用 porttalk 時,它再自動開啟 digitrac.exe 後卻有一個錯誤訊息出現。這個我沒有見過啊。可能問題便是出在這個上。你一定要想法子解決啊,在38樓的帖是沒有這個問題的。(我的 digitrace資料夾內的確是有 zlportio.sys 這個檔案的)
我只想到重新安裝 digitrace 這方法。我在xp測試中是用新版的,所以我希望你能調效到與我的測試環境一樣。這裡你要小心試啊。
建議:
1. 用 adminstrator 身份登入xp
2. 先反安裝你的 digitrace。
3. 重新安裝 digitrace。
4. 這安裝是有問題的,仍欠缺2個 dll 。所以你要手動 把舊版中的 borlndmm.dll 和 cp3240mt.dll 這2個檔案抄至你新安裝的 digitrace 資料夾內。
5  應該完成安裝 digitrace 了。
重新嘗試 用 porttalk 開啟 digitrac.exe,看看是否有問題。
PS: 你在38樓的圖雖然是成功,但你描述的過程好像很複雜的。其實過程是很簡單只有幾步的,不知會否也是引起問題的原因。你理解整個步驟後試試吧。希望你成功 !!

[ 本帖最後由 irobot 於 2007-8-22 14:21 編輯 ]
73#
發表於 2007-8-22 16:32:20 | 只看該作者
重新安裝後,這次開啟沒有錯誤訊息出現了,不過還是找不到波形..,
我沒有安裝印表機所以也不知道並列PORT是不是正常的,不過我都是用這台電腦的並列PORT作線上燒錄,所以我覺得應該是OK的??
產生1KHZ的程式:
        ORG        00H
START:        MOV        A,#FFH
        MOV        P1,A
        CALL        DELAY

LOOP:        SETB        P1.0
        CALL        DELAY
        CLR        P1.0
        CALL        DELAY   ;我這邊不+這一行的話好像都會失敗...不知道為什麼(就是亮度不會變比較暗..)
        JMP        LOOP


;==================================
DELAY:
        MOV        R1,#FFH       
LOOP1:       
        NOP
        NOP
        DJNZ        R1,LOOP1        ;2us+2us = 4us,總共= 4us x 256 = 1ms
       
        RET
;==================================       
        END
74#
發表於 2007-8-22 18:18:26 | 只看該作者
回 Zirok
LOOP:
        SETB P1.0
        CALL DELAY
        CLR P1.0
        CALL DELAY ;我這邊不+這一行的話好像都會失敗...不知道為什麼(就是亮度不會變比較暗..)
        JMP LOOP


這個是當然啦。如沒有這一行,在 CLR P1.0 後便是 JMP LOOP 然後便是 SETB P1.0 。亦即是一熄燈後立時又開著,自然是不會變暗了。
這很奇怪啊。 A 部份沒有任何問題。 B  部份換了這點燈程式亦是正常。 C 部份 logic analyzer 硬體正常。 最後 D 部份 digitrace 軟件亦正常。實在不明白為何你會不成功的。
另外你的 parallel port 接頭是"公"頭來的吧。
我只能建議
1.   你仔細重新檢視所有接線接駁的 pin number 是否和設計圖一樣。
2.   "所有"地線要共接
3.   測量訊號的線 是不經電阻直接駁至 mcu 的腳上
4.   在 digitrace 軟體上要把 setting 內的 取樣定為 32768,用一次取樣量度。要用 [zoom] button 縮細後才可看到整個波形。

另外看了原網站的 trouble shooting, 可以照紅色部份的建議試試。
Troubleshooting
Find out at which address the parallel printer port is located. Usually it's 0x378To find out your parallel port address, try a little program called "Port Finder". If it doesn't show a parallel port, then I've got 3 suggestions for you. First, the printer port is claimed by another application. Quit all tasks, flush any pending print tasks.
Secondly, there's a maintenance pack for win_95_ called "prnt5upd.exe". Locate it with ftp-search. This will install a new virtual lpt driver if yours is older.
Thirdly, it could be that your parallel port is located at an other address. Try to correct this, by means of jumpers, or by means of the bios setup (look for integrated peripherals or the like). You can also supply an alternative location using the textbox "Input Port".
If digitrace shows no response to signals applied to the printer port, try to set the port type to SPP using your BIOS setup. Also disable any software that uses the parallel port, such as scanner drivers etc.



[ 本帖最後由 irobot 於 2007-8-22 18:30 編輯 ]
75#
發表於 2007-8-22 19:25:41 | 只看該作者

回覆irobot 大大

可以請您告訴我紅色部分的具體做法嗎??  感謝

您說的用[zoom] button 縮細是指按" 一 "按鈕嗎?  可是弄寬弄細我都試過了...我檢查線路吧@Q@

測量訊號的線與MCU之前有74HC245而已~,SO...我看一下線路圖
76#
發表於 2007-8-22 20:47:48 | 只看該作者
就是說在開機時的黑畫面按  [del]  (不同bios這按鍵是不同的) 進入 bios 的 setup 畫面。
然後大慨是選當中的 integrated peripheral。在細項中有一個 Integrated Parallel Port Mode。
一般可以選 EPP (先試這個吧),或 trobleshooting 說的SPP。
如果不清楚可以上網找找你的 bios 設定的方法。
想問你,燒錄程式的線是你自己做的嗎?

[ 本帖最後由 irobot 於 2007-8-22 20:53 編輯 ]
77#
發表於 2007-8-22 20:57:22 | 只看該作者

回覆irobot 大大

是阿~,有線路圖又有圖文教學OK的拉,就是 阿峰大大求助線上燒錄程式的那邊,
基本上是可以燒錄的,不然我也沒得一直修改程式阿 呵呵,

另外關於線路的部分我是用麵包板,麵包板的另一塊就是燒錄的部分,
圖片裡是傳訊號區,我的接線我看不太出來有什麼問題@q@,so我等等再去試試看(好像忘了共同接地)
之後再試試看bios吧...(最後的手段=.=")

[ 本帖最後由 zirok 於 2007-8-22 21:02 編輯 ]

CIMG0352.JPG (30.1 KB, 下載次數: 135)

我的下上+.-有接在一起~

我的下上+.-有接在一起~

CIMG0353.JPG (30.19 KB, 下載次數: 135)

產品編號hd74hc245p

產品編號hd74hc245p

CIMG0354.JPG (29.33 KB, 下載次數: 160)

合照~ 等等拿去接電腦~

合照~ 等等拿去接電腦~
78#
發表於 2007-8-22 22:26:57 | 只看該作者
如果最後仍不成功,我想你也不會甘心就此罷休的。因為明明 digitrace 軟件 與 你製作的硬件也沒有問題,為甚麼在相同情況下,我的能運作你的卻不能呢。?????
若換了是我,我會很好奇想知道
1. 究竟是否有電壓送入parallel port 內?
2. parallel port 有否供電給 ic 讓它正常運作呢?
換了是你,你有甚麼辦法可以證實這個關鍵的部份呢?
79#
發表於 2007-8-23 20:50:31 | 只看該作者

回覆irobot 大大

我進bios之後發現它本來的設定就是spp,所以我先改成EPP看看,不過跟之前一樣,
SO..也不多贅述 ,三個月的暑假...,沒DIY出什麼東西來,每一次每一次都對自己蠻失望的,
我在想可能是電腦的問題...,因為它每當我開機=>第一次開啟digitrace時它都會先顯示錯誤訊息一次,然後我就會再打一次指令,不過它第二次開啟就沒有錯誤訊息了...,怎麼測試...,
我個人是沒什麼想法=.=",我只知道當我沒傳訊號給digitrace時它的每一個白色方塊是白色的(不閃爍),但當我接上74HC245,它每一個通道的白色方塊會不停閃爍,當我傳訊號進去(EX:通道1),
通道1的白色方塊的閃爍頻率明顯與其他不同,我是以次方式判斷有無訊號進去,但實際上是怎樣我也不太清楚@Q@,到底怎麼樣才能看到波形呢....哀
80#
發表於 2007-8-23 21:13:11 | 只看該作者
要測定第一項,你可以自己供應+5V 給 ic ,先確定mcu的輸出腳能供應1000Hz 點亮 led 。然後把 訊號接至 ic 的 B1 腳,而把 led 正的一端接 ic 的 A1,負的一端接地。看看 led 的輸出是否和之前相若。這便證實了真的有電壓輸出至電腦的 parallel port。
另外,執行 digitrac.exe 讓它監察任何一條頻道,並用 萬用表 量度 parallel port 的 pin 1 在這時是否有供應 +5V 出來驅動 ic 。
若這2兩項皆正常,則可把問題鎖定在 軟件 與 電腦的 parallel port 配合上了。
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-5-17 10:25 , Processed in 0.286338 second(s), 9 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表