89C2051與定時器 |
答題得分者是:bernie_w39
|
tomm0692001
一般會員 發表:1 回覆:1 積分:0 註冊:2007-12-03 發送簡訊給我 |
|
bernie_w39
資深會員 發表:3 回覆:199 積分:280 註冊:2007-10-07 發送簡訊給我 |
|
tomm0692001
一般會員 發表:1 回覆:1 積分:0 註冊:2007-12-03 發送簡訊給我 |
===================引 用 bernie_w39 文 章=================== 中斷之後, 又作了什麼動作呢? MCU 進入中斷, 需要一點時間, 然後處理中斷程式本身, 也要時間, 處理完後, 從中斷返回, 也是要時間. 這三個時間加起來, 就會是你測到的結果 - 9uS 記得 cygnal 有一款 C8051 系列的, 內建 24MHz clock, 如果指令是 1 clock 一個的話, 應該有機會. 這個TIMER中斷只有讓COUTER加1,透過COUTER的數值來計算時間,並利用一個外部中斷,當負緣觸發時進入中斷,然後讀取COUNTER的值,夠過COUTER的值去判斷紅外線訊號,因為此紅外線編碼有4個不同的時間,每一個時間差距只有110us,所以當我使用89c2051去做判斷的時候都會出錯,除非送很多次才有辦法控制,所以想請問看看有什麼方法可以得到每1us中斷一次?我有想過如果用avr單晶片去做,不知道可不可以,如果可以的話可以推薦那個型號比較好? |
bernie_w39
資深會員 發表:3 回覆:199 積分:280 註冊:2007-10-07 發送簡訊給我 |
AVR 我就還滿熟的, 像你要求的功能 (四個輸入, 每個之間的差距在 110uS), 然後要抓訊號的解析度
在 1uS. 這樣的功能, 大部份的 AVR chip 應該都可以, 看你其它部份的功能要多少 i/o, 以及程式碼 空間. 以及用 C or ASM, 再來決定 chip 比較好. 比較常見的像 ATmega8, ATmega48, ATtiny24... 實作你提的功能, 應該都綽綽有餘. 看你的解析度要 多準, 如果要很準的, 就用 crystal, 否則 internal 8MHz RC oscillator 是夠用了. 它有 16 bit timer, 以及 pin changer interrupt, 所以 pin change 時, 將 pin 的資料與 timer 值留住, 應該準度是可以的. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |