Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
12
返回列表 發新帖
樓主: ffffff2641
打印 上一主題 下一主題

關於控制問題??

[複製鏈接]
21#
發表於 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, 下載次數: 154)

Cimg2004.jpg
22#
發表於 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 編輯 ]
23#
發表於 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 編輯 ]
24#
發表於 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 編輯 ]
25#
發表於 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 編輯 ]
26#
發表於 2007-8-22 22:26:57 | 顯示全部樓層
如果最後仍不成功,我想你也不會甘心就此罷休的。因為明明 digitrace 軟件 與 你製作的硬件也沒有問題,為甚麼在相同情況下,我的能運作你的卻不能呢。?????
若換了是我,我會很好奇想知道
1. 究竟是否有電壓送入parallel port 內?
2. parallel port 有否供電給 ic 讓它正常運作呢?
換了是你,你有甚麼辦法可以證實這個關鍵的部份呢?
27#
發表於 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 配合上了。
28#
發表於 2007-8-24 14:41:04 | 顯示全部樓層
恭喜你,有志者事竟成。   你總算在假期完結前做好這個了。它很有用的,有了它你便知程式中的問題出在那裡。
不過你給我不能成功的答案也實在太叫我意外了!  哈哈哈!!!!
也怪我沒有詳細問清楚你使用軟件的情況,我忽略了這可能性。
關於你說的超過 2.5 ms 的情況,有空再給你看一下吧 !!
你再發一次你現在用的 ssc.asm 完整的程式吧。

另外,你現在有了 logic analyzer, 你自己也可以嘗試用它驗證你的 計時 方法是否準確。
自己動手寫一個簡單的 loop ,控制 腳位 輸出 pulse 然後量度。這可有助你解決計時不準的問題。

[ 本帖最後由 irobot 於 2007-8-24 15:00 編輯 ]
29#
發表於 2007-8-25 01:50:17 | 顯示全部樓層
DEL_L:                       ;延時R7*0.1毫秒,晶振在11.0592MHZ
                                   ;MOV R7,#1 ;因為執行DEL_H時已經變成0(暫時想不到當初為什麼要+這個)
MOV A,#27H               ;27H X 40us 約 = 1.56ms ,先前已經有1ms了
CPL PWM
ADD A,PWM
MOV COUNT,A
LOOP2:
                                              ;SETB TR0 ;開啟T0計數器
                                              ;CLR TR0 ;關閉T0計數器
          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


我不太肯定紅色語句的寫法有否問題,因為查 8051 instruction set 沒有這種寫法。
可否改為先找取 PWM 內的數值至 A, 執行 CPL  A 指令,然後把 A 內的值回傳至 PWM。再之後才做 這幾句
MOV A,#27H               ;27H X 40us 約 = 1.56ms ,先前已經有1ms了
ADD A,PWM
MOV COUNT,A
LOOP2:
...............
...............
不知這樣有否幫助。
30#
發表於 2007-8-25 11:07:47 | 顯示全部樓層
慢慢來吧。只要肯定訊號準確,問題便是在出在伺服機或提升電阻之類的東西上。
我插入這2kb的圖沒有問題啊。
附件也好像沒有問題。

[ 本帖最後由 irobot 於 2007-8-25 11:12 編輯 ]

prevbutton2.png (3.63 KB, 下載次數: 148)

prevbutton2.png
31#
發表於 2007-8-25 21:37:31 | 顯示全部樓層
你可以把 jpg 圖片檔壓縮一點啊。好多軟件也可以做到的。用 InfanView 吧,可以改變解像和壓縮比列的。
至於 digitrace的紀錄檔,你可以先改它的副檔名,然後通知其他人要改回的名稱便可以了。
32#
發表於 2007-8-26 20:39:58 | 顯示全部樓層
呵呵!! 做得不錯。
圖1的時間超過了 2.5 ms ,不過我想你可以慢慢找出是3個計時部份中哪一個地方要修改的。
33#
發表於 2007-8-27 11:54:02 | 顯示全部樓層
看了你的貼圖突然想起,你不如改改程式不要每 20ms 便轉1次訊號,可能伺服機不能作這麼快的反應便不動了。你可先把5次的訊號也做相同的設定看看效果如何。
34#
發表於 2007-8-28 20:26:45 | 顯示全部樓層
應該是量度電壓較好吧!
是升電阻如下接駁。

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

pull-up.jpg (11.78 KB, 下載次數: 191)

pull-up.jpg
35#
發表於 2007-8-29 17:43:08 | 顯示全部樓層
這樣便對了。確定訊號正確後,其它問題便較易對付了。
可以正式開始你的機械人DIY計劃了。  
36#
發表於 2007-8-30 01:29:49 | 顯示全部樓層
AVR 是使用棈簡指令集(RISC)的mcu,與 8051 明顯不同的是大部的指令均可以在單機械週期內完成,所以效率比舊式的51系為高。另外它的機械週期直接等如時鐘頻率而不像51系還需要除12,所以它的整體效能要比8051系高出甚多。(相同頻率的 crystal 計,AVR系大蓋要比(舊款的)51系快上10至20倍)
另外相對8051系它擁有較多的的資源可供調配,它有較多的暫存器數量、sram空間、flash的容量和timer數量以及設置watchdog 和 eeprom 等,而價錢也貴不了多少,所以它能夠越來越普及。
常用的有 atmega8, 16, 32 和 128 等。數字代表了flash的容量。當然也有其它系列如attiny2313, atmega8515 等
如轉用AVR系列你便要用過另一套的 彙編指令了。
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-14 07:43 , Processed in 0.316765 second(s), 9 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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