|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
一個(gè)查詢方式檢測脈沖寬度的程序,這樣寫是不是很容易出問題? |
| 作者:tanjc2 欄目:單片機(jī) |
AT89S51,12M晶振,檢測555定時(shí)器產(chǎn)生的低電平脈沖寬度,寬度肯定小于《65ms,希望能檢測的盡量準(zhǔn)確。 sbit WAVEIN=P1^5; unsigned CHAR testwave() // TH0,TL0存放結(jié)果 {TMOD=0x01; TH0=0; TL0=0; while(WAVEIN==0){;} while(WAVEIN==1){;} TR0=1; while(WAVEIN==0){;} TR0=0; return 1; } 這樣檢測不會(huì)受到別的程序執(zhí)行時(shí)間的影響,但是用這么多while好像非常不好,這樣檢測的話,萬一555壞了,程序就死循環(huán)了吧?大家有沒有更好的辦法?謝謝 |
| 2樓: | >>參與討論 |
| 作者: computer00 于 2006/2/23 12:29:00 發(fā)布:
你直接用它來控制計(jì)數(shù)器的門控信號不就行了? 即使用計(jì)數(shù)器的外部門控(int0跟int1腳)。 另外也可以考慮改用89S52的計(jì)數(shù)器2的捕捉功能。 * - 本貼最后修改時(shí)間:2006-2-23 12:30:45 修改者:computer00 |
|
| 3樓: | >>參與討論 |
| 作者: AIRWILL 于 2006/2/23 18:19:00 發(fā)布:
computer00 的方法很好.信號故障不會(huì)影響系統(tǒng)穩(wěn)定 |
|
| 4樓: | >>參與討論 |
| 作者: 12864 于 2006/2/23 23:39:00 發(fā)布:
其實(shí)51的門控定時(shí)器功能就是為PWM脈寬檢測用的 這樣就免去了軟件檢測精度的困擾,也避免了你那種程序方法給系統(tǒng)其他任務(wù)的執(zhí)行所帶來的問題 |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |