Re: 用pic如何讀取IR信號
|
||||
---|---|---|---|---|
高級會員
|
我不知道我所說的IR碼跟你的一不一樣..
不一樣就參考看看囉. 1BIT 有HI/LO 變化...由HI/LO 週期來決定為1或0 HI:LO 2:1 -> 1 HI:LO 1:2 -> 0 用取樣的方式..如果接收每個BIT HI/LO寬度固定.. 其實取樣數誤差放寬可以調整靈敏度.. 只要再加入CheckSum檢查..資料接收應該還ok.. 我用16f505,沒有中斷..只能用輪詢來取樣.. 取樣時間就有3~5us的變化 ..但是目前測試還滿ok的.. 至於重複信號..我想每發射一筆資料應該有一段hold time.. 只要取樣hi或lo counter值大於非正常範圍的話.. 應該要重置接收,或有接收到一個正確的Start Bit... 應該就要準備接收資料... 另外按1次鍵,碼發射2次會是比較好的做法... 因為接收端一直持續會有雜訊進入... 不過雜訊同時要與hi/lo取樣值相同,再加上checksum檢查無誤 造成誤判的機會...資料量越多就越不可能... 第一次發射的信號很容易會被雜訊影響.. 第二次信號就漂亮多了... 有做過小測試..就是發射2次..距離能拉的比較遠一點.. 至於資料長度時間多久...就不需要去考慮了... 以上是小弟最近寫IR的心得....希望能有所幫助...
發表於: 2007/7/4 22:40
|
|||
|
Re: 用pic如何讀取IR信號
|
||||
---|---|---|---|---|
高級會員
|
我的做法是用200us中斷取樣的方式...
取樣hi,lo週期..再檢查合理取樣次數範圍.. 接收有問題..便重置接收.. 直到取樣到下一個Start Bit,才開始資料接收...
發表於: 2007/7/4 12:39
|
|||
|
Re: 切page遇到問題?
|
||||
---|---|---|---|---|
高級會員
|
用disassembly listing 來看...
發現到 bKeyL, bKeyH 被共用的問題.... 終於找到問題了.... 麻煩各位...真對不起各位..下次會多加注意的... 深刻反省中......
發表於: 2007/5/24 9:38
|
|||
|
Re: 切page遇到問題?
|
||||
---|---|---|---|---|
高級會員
|
加上去後...還是一樣...
然後更奇怪的問題發生了 我把readkey簡化到只剩return... 再從page1直接呼叫readkey...這樣執行ok.... 但是...我只在readkey加上clrf bKeyL; clrf bKeyH這2行指令(bank沒切錯)雖然不會卡死...但執行的程序已經出問題... 我想不出為什麼加那2行指令..會變成這樣...? 怪...
發表於: 2007/5/24 9:07
|
|||
|
切page遇到問題?
|
||||
---|---|---|---|---|
高級會員
|
在PAGE1呼叫 PAGE0 的程式...
不知道為什麼,軟體模擬都跑的滿正常的... 我在scankey return 時看 stack 的位址是ok的... 所以軟體模擬跑起來也跟想的一樣... 但實際燒錄去RUN...卻會造成程式卡死在readkey?? 因為我把readkey註解掉..LED顯示就正常切換了... 我一直在想是不是呼叫page0的程式..然後scankey又call readkey子程序...造成return位址被覆蓋掉? 請各位先進指導....是不是我忽略了什麼?? ps. scankey這部份程式是ok的...因為要加上量產測試程式 ,所以必須要使用到page1 , stack 也注意過沒有over flow.. 其它呼叫page0的程式也都用同樣的方式..都滿正常的.. 就是scankey 有再call readkey 子程序... 一些測試結果: scankey將 call readkey 註解掉...正常 page1直接呼叫 readkey ....卡死... --------------page0-------------- ..... scankey: call readkey ...... return readkey: ..... call _k01 return _k01: return ;-------------page1-------------- TEST_LOOP: ........ page0 call scankey ; 10ms run page1 ........ ; led 反相顯示... goto TEST_LOOP
發表於: 2007/5/23 17:53
|
|||
|
Re: 請教要能即時顯示同時又要省電..怎麼做會比較好?
|
||||
---|---|---|---|---|
高級會員
|
謝謝..第一次使用到sleep功能..
16f946,這個chip, osc,t1osc是共用接腳的.. 所以必須要使用到內部振盪才行... 時間用 timer1 加32k 外部振盪 每0.5s中斷一次.. 來wakeup系統..在中斷時只處理時間&LCD顯示, 馬上再進入sleep... 若是按鍵操作wakeup系統,timer1中斷就不再進入sleep.. ....等待時間到後再sleep 這樣想起來應該ok...謝謝..我會試看看的..
發表於: 2007/5/11 12:01
|
|||
|
請教要能即時顯示同時又要省電..怎麼做會比較好?
|
||||
---|---|---|---|---|
高級會員
|
因為進入SLEEP模式後,程式會停止執行..直到被喚醒..
但是時間顯示(LCD)必須持續做更新.. 有哪些方式可以降低耗電量?? 降低頻率至32K執行比8M執行省電多了... 但頻率這樣切來切去.. 時間計時會被影響吧?有辦法可改善嗎?? 若時間計時由外部振盪(T0CKI)來計時, 主程式可切換頻率執行,這樣做ok嗎?.. 我用的MCU有內部振盪是可以直接切換(16F946)... 不知道內部振盪準不準確?? 還是有什麼更好的做法..請各位先進指導..謝謝
發表於: 2007/5/10 17:23
|
|||
|
Re: LCD問題~HELP~
|
||||
---|---|---|---|---|
高級會員
|
如果可以的話...
能不能mail一份Graphic TFT LCD 的設計範例給小弟參考看看.. 謝謝~
發表於: 2007/4/27 16:27
|
|||
|
Re: 請教 LCD DRIVE MODULE 問題
|
||||
---|---|---|---|---|
高級會員
|
謝謝版主...
發表於: 2007/4/27 12:03
|
|||
|