|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
LPT忽悠記(上) |
| 作者:flanker 欄目:技術(shù)交流 |
起因:賣給某客戶的工控機,說是LPT口出毛病,于是打電話過來,技術(shù)支持搞不定,給我們研發(fā)部搞。研發(fā)部管工控機的小伙也搞不定,于是抓了我的壯丁。 現(xiàn)象:客戶往LPT口循環(huán)寫00和ff,出來的方波時有時無。 客戶的程序: #define LPT 0x378 main() { while(1) { outportb(LPT, 0x00); delay(); outportb(LPT, 0xff); delay(); } } 得到的波形不正常。 我找了一塊一樣的板子,弄了段測試程序。 下面是我的測試方法: c:\>debug -a 100 1402:0100 mov dx, 0378 1402:0103 mov al, 00 1402:0105 out dx, al 1402:0106 mov cx, 0100 1402:0109 loop 0106 1402:010B mov al, ff 1402:010D out dx, al 1402:010E mov cx, 0100 1402:0111 loop 0111 1402:0113 jmp 0103 1402:0115 -r cx cx 0000 :15 -n testport.com -w -q c:\>testport ——看到這里,各位眼暈了沒?注意,這個方法只在純DOS下好使哦,因為Windows已經(jīng)接管了并行口了。 晚了,該睡了,大家可以找本匯編語言的書看看,明天再告訴大家,我是如何忽悠這個可憐的LPT口的。 * - 本貼最后修改時間:2006-4-20 23:29:47 修改者:flanker |
| 2樓: | >>參與討論 |
| 作者: hotpower 于 2006/4/21 0:07:00 發(fā)布:
哈哈...dos下的debug還是沒忘~~~ |
|
| 3樓: | >>參與討論 |
| 作者: computer00 于 2006/4/21 5:10:00 發(fā)布:
俺用VB+WinIO來忽悠LTP~~~~~~~~~ 由于windows操作系統(tǒng)的任務(wù)調(diào)度,方波也是會間斷的,不過對我的結(jié)果不產(chǎn)生影響,我是模擬I2C主機的。 |
|
| 4樓: | >>參與討論 |
| 作者: flanker 于 2006/4/21 8:56:00 發(fā)布:
Computer00同學(xué),做人要厚道 做人要厚道,不要搶我準(zhǔn)備說的話,連載后面的內(nèi)容提前說出來就沒意思了 |
|
| 5樓: | >>參與討論 |
| 作者: sillboy 于 2006/4/21 8:59:00 發(fā)布:
頂,關(guān)注中 |
|
| 6樓: | >>參與討論 |
| 作者: computer00 于 2006/4/21 9:17:00 發(fā)布:
暈……我以為你要說的不是由于任務(wù)調(diào)度而引起的間斷…… 所以就順便提了一下windows的任務(wù)調(diào)度……………… 樓主請繼續(xù),我的跟帖,并不對您的分析造成影響,因為很容易就猜到是由于多任務(wù)調(diào)度而引起的, 但如何解決這個問題,那才是我們所需要的。如果提升任務(wù)優(yōu)先級來占用更多的CPU時間的話, 可能會導(dǎo)致其它軟件不能響應(yīng),另外內(nèi)核的任務(wù)切換,總是存在的。不知道樓主是如何解決這個問題的? 如果頻率很低的方波,哪倒沒問題,可以用系統(tǒng)延時來做。但如果頻率上到100來K的話,我似乎想 不出什么辦法來解決這個問題了,除非,你的電腦裸奔或者用單任務(wù)的操作系統(tǒng)………… |
|
| 7樓: | >>參與討論 |
| 作者: winsu 于 2006/4/21 11:18:00 發(fā)布:
VB+IO的DLL方式容易 速度也不低。 用VC+IO的方法,速度會較高。我做過的比別人的更高,100KB/s以上的速度是沒問題的。 LPT最好用標(biāo)準(zhǔn)方式,如果用EEP或更高級的,如果不是很熟悉,調(diào)試麻煩。 而且不同電腦的LPT的高級模式,如EPP會有所不同。 |
|
| 8樓: | >>參與討論 |
| 作者: delli 于 2006/5/1 12:06:00 發(fā)布:
做人要厚道 |
|
| 9樓: | >>參與討論 |
| 作者: SupermanTm 于 2006/5/2 21:54:00 發(fā)布:
純粹賣弄 有個更簡單的方法:COPY CON LPT1 當(dāng)然,別忘了用[CTRL-Z]退出! |
|
| 10樓: | >>參與討論 |
| 作者: dengm 于 2006/5/4 10:16:00 發(fā)布:
改WinIO的asm, 關(guān)中斷后 os 就干擾不了你了,上1MbpByte都可以! |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |