|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | 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 |
自動(dòng)感應(yīng)水龍頭軟件設(shè)計(jì),急。。! |
| 作者:dpj2006 欄目:單片機(jī) |
我是用ATTINY26做自動(dòng)感應(yīng)水龍頭設(shè)計(jì),發(fā)射是用PWM產(chǎn)生38K的頻率,產(chǎn)生編碼是用TMR0溢出中斷的方式來(lái)控制脈沖串的時(shí)間。在接收時(shí)用的是紅外接收頭,INT中斷方式,邊發(fā)邊接收的方式,即在發(fā)射過(guò)程中,置為INT下降沿觸發(fā),在中斷里跟蹤TMR0的時(shí)間,當(dāng)所設(shè)定的時(shí)間到時(shí),再判斷是高還是低,具體如下: 1、如發(fā)射為1MS的脈沖串(38K),在接收端為1MS低電平,則我在INT里設(shè)定一個(gè)時(shí)間參數(shù)為0.5MS與TCNT0作比較,若大于再判斷是高還是低. 2、如此我編了幾個(gè)碼,如1MS低,10MS高,2MS低,16MS高... 但我經(jīng)實(shí)際運(yùn)行后,有時(shí)能成功接收,有時(shí)就不行了,我分析原因有如下: 1、因我1MS低10MS高為引導(dǎo)碼,是否是1MS時(shí)間太短了。 2、因我用的是內(nèi)部1MHZ的時(shí)鐘,是不是誤差太大,而產(chǎn)生發(fā)射脈沖串1MS時(shí)間不準(zhǔn)。 3、因系統(tǒng)工作時(shí)PWM是用TMR1產(chǎn)生的,而計(jì)數(shù)脈沖串是用TMR0,它們?cè)谕瑫r(shí)工作時(shí)相互間有影響。 以上真的不知為何,請(qǐng)高手分析一二! |
| 2樓: | >>參與討論 |
| 作者: dpj2006 于 2006/4/17 19:49:00 發(fā)布:
再補(bǔ)充說(shuō)明 我用AVRSTUDIO軟仿真沒(méi)問(wèn)題,因沒(méi)硬件仿真器!也就無(wú)法真實(shí)觀察其相關(guān)的狀態(tài),只能憑理論分析,實(shí)在沒(méi)辦法了! |
|
| 3樓: | >>參與討論 |
| 作者: 94179411 于 2006/4/18 18:40:00 發(fā)布:
紅外發(fā)射和接受頭都是什么型號(hào)的? 還有你的發(fā)射頭的限流電阻取得多大值? |
|
| 4樓: | >>參與討論 |
| 作者: xch 于 2006/4/19 15:51:00 發(fā)布:
你的解碼電路是不是有問(wèn)題? 比如電源沒(méi)有裝去藕濾波器? |
|
| 5樓: | >>參與討論 |
| 作者: madaha 于 2006/4/19 16:38:00 發(fā)布:
簡(jiǎn)單問(wèn)題復(fù)雜化 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |