鮑率加倍的問題? |
答題得分者是:dootf
|
therockis75831
一般會員 發表:15 回覆:16 積分:6 註冊:2011-11-15 發送簡訊給我 |
如果使用UART 模式1 (非同步10bit UART傳輸 可設定傳輸速率 用於電腦RS232)
然後一般這個公式都是TH1=256-[(2^smod) *Fosc /384*鮑率] 若今天我鮑率9600 那震盪器是設11.0592 MHz或者是22.1184MHz 為何會分為需要鮑率加倍?與不需要鮑率加倍? 我再某公司的IC看到 mode1 公式是 Baud Rate =(2^SMOD/32) *( Timer-1 overflow rate ) Timer-1 overflow rate又是什麼?
------
Rock |
therockis75831
一般會員 發表:15 回覆:16 積分:6 註冊:2011-11-15 發送簡訊給我 |
|
dootf
一般會員 發表:3 回覆:10 積分:7 註冊:2011-10-02 發送簡訊給我 |
smod = PCON 暫存器的 第7bit,當 UART 傳輸模式處於 1 or 3 的時候,就會與 smod 、 timer1 等等暫存器有關,公式如你自己提供的,計算方式如下:
Fose = 11.0592MHz smod =0 所以 2^smod = 2^0 = 1 TH1=256-[(2^smod) *Fosc /384*鮑率] TH1 = 256 -[ 1*11059200/(384*9600)] =256-11059200/3686400 = 256-3 = 253 'TH1 就是 timer1 的 overflow,也就是 每三個晶振就溢位產生中斷 上述相同的情況下,若要產生鮑率 19200,則只須修改 smod = 1 即可 Fose = 11.0592MHz smod =1 所以 2^smod = 2^1 = 2 TH1 = 256 -[ 2*11059200/(384*19200)] =256-22118400/7372800 = 256-3 = 253 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |