Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 6841|回復: 6
打印 上一主題 下一主題

FM & 8051

[複製鏈接]
nichal 該用戶已被刪除
1#
發表於 2012-10-8 09:09:48 | 顯示全部樓層
1. 信號要共地並提升, 才不會一直收到0
2. 如果不一直收到信號, 那servo就會放棄鎖角度, 有一直收到才是正確的
3. 寫法要跟servo接收一樣, 依照脈寬來當成判斷條件, 比方脈寬超過2mS代表1, 小於1mS代表0之類的寫法

祝你順利~~
nichal 該用戶已被刪除
2#
發表於 2012-10-11 18:33:29 | 顯示全部樓層
給個提示好了
8051中有個16bits的Timer2
計算一下65535 counts所代表的實際時間大約多長
如果可以比2mS大上一倍的話
那麼要實現就不難
(這跟系統所用的振盪頻率有關, 所以請自己算算看吧)

第一種作法是利用兩組外部中斷來偵測
不過因為8051的外部中斷是負緣觸發 (新的變種可以設定正緣或負緣)
所以對於正訊號輸出的脈寬需要先經過反相處理
當第一組中斷觸發時先將Timer清為0
第二組中斷發生時讀取Timer的counts數目
如此便可分辨現在的脈寬是多少
進而對應適當的動作
這種作法最準, 但是用掉的IO比較多
且外部中斷被用光光不能做其它用途

第二種作法是利用定時中斷定時去讀取IO狀態
假如是0.3mS的定時中斷
那麼當狀態是正的時候計數, 負的時候判斷計數並清為0
不到4下當做0
超過7下當做1
這樣可以比較靈活
但是比較不準

實際動手試試看吧~~~
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-3 04:32 , Processed in 0.206416 second(s), 8 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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