會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





請問8bit的MCU的EUSART 中斷傳送
高級會員
註冊日期:
2013/02/27 11:13
所屬群組:
註冊會員
文章: 138
等級: 10; EXP: 79
HP : 0 / 244
MP : 46 / 3329
離線
我用MCC產生PIC18F66K40的程式

請問EUSART的傳送中斷
是傳完才產生中斷?
還是先進入中斷EUSART2_Transmit_ISR()
才開始傳送?
因為如果要UART轉RS485,搭配MAX485
需要在傳送完之後,把MAX485的2和3的腳反向
如果答案是後者,那我怎麼知道什麼時後傳完

附加檔案:



jpg  2017-03-28_130814.jpg (95.93 KB)
13612_58d9f08922bf4.jpg 905X524 px

3月28日 13:18:47
轉換PDF檔 列印


Re: 請問8bit的MCU的EUSART 中斷傳送
資深會員
註冊日期:
2010/06/30 16:18
來自 CAE, Microchip Technology Inc.
所屬群組:
站務管理者
註冊會員
文章: 1546
等級: 33; EXP: 43
HP : 162 / 810
MP : 515 / 17334
離線
USART的中斷, 發生時間點是, 當TXxREG的資料搬進Shift Register時.
如過套用您的理解, 就是開始傳送時....完全傳送完時, TRMT會被設定起來.

3月29日 05:05:10
轉換PDF檔 列印


Re: 請問8bit的MCU的EUSART 中斷傳送
高級會員
註冊日期:
2013/02/27 11:13
所屬群組:
註冊會員
文章: 138
等級: 10; EXP: 79
HP : 0 / 244
MP : 46 / 3329
離線
你的意思是中斷發生的點在TXxREG的資料搬進Shift Register的時後

這樣算是中斷發生的點在資料傳送前,那問題來了
因為我要搭配MAX485,就得在資料傳送結束後,把2和3腳反相
如果我還要POLLING TRMT,那不就失去用中斷來傳送的意義了嗎
請問還有什麼方法可以適時控制MAX485在傳送與接收間做轉換?

3月29日 08:36:11
轉換PDF檔 列印


Re: 請問8bit的MCU的EUSART 中斷傳送
初級會員
註冊日期:
2012/06/14 16:25
所屬群組:
註冊會員
文章: 23
等級: 3; EXP: 52
HP : 0 / 63
MP : 7 / 988
離線
樓主, 小弟發表一下我的淺見
我也是用485傳送資料, 當在傳送資料每個byte的時候
我也是等待TRMT是否結束傳送
我是沒有使用傳送中斷, 不過我知道我每次要傳送的資料長度
所以傳送結束是已知的,此時就可以把腳位反相了

3月29日 08:52:24
轉換PDF檔 列印


Re: 請問8bit的MCU的EUSART 中斷傳送
高級會員
註冊日期:
2013/02/27 11:13
所屬群組:
註冊會員
文章: 138
等級: 10; EXP: 79
HP : 0 / 244
MP : 46 / 3329
離線
謝謝回答,我之前也是跟你用同樣的方法
沒有用傳送中斷,
也是直接傳,最後檢查TRMT
可是這一個方法會讓我程式沒有效率
從開始傳到傳送完成,程式幾乎不能做別的事情

現在我在找有沒有更好的方法
我想精進程式效率

3月29日 09:03:41
轉換PDF檔 列印


Re: 請問8bit的MCU的EUSART 中斷傳送
初級會員
註冊日期:
2012/06/14 16:25
所屬群組:
註冊會員
文章: 23
等級: 3; EXP: 52
HP : 0 / 63
MP : 7 / 988
離線
以目前的中斷架構應該是沒辦法滿足樓主的需求
剛剛想了一下, 提供一個蠢方法, 不過我沒有試過

假如使用一個Timer的中斷
假如BoudRate = 9600, 時間大概1ms/byte
Timer中斷時間設定>1ms
要傳送資料的時候把資料丟進TXREG, 每次中斷都先判斷TRMT
若資料還沒傳完就跳出, 資料傳完就在繼續送下一個資料
這樣是使用中斷操作, 不會一直Hold在判斷TRMT

不曉得485的接收端是怎麼判斷接收資料已經完結
如果有啟始或是結尾資料可以判斷, 這個應該可以成功
或是接收端是用無接收資料間隔時間判斷, 只要Timer中斷時間不要超過
應該不會造成判斷錯誤

3月29日 09:36:30
轉換PDF檔 列印


Re: 請問8bit的MCU的EUSART 中斷傳送
高級會員
註冊日期:
2013/02/27 11:13
所屬群組:
註冊會員
文章: 138
等級: 10; EXP: 79
HP : 0 / 244
MP : 46 / 3329
離線
你的意思是說傳送中斷傳
另開一個TIMER
每隔固定時間進入
檢查TXcount和TRMT嗎
若兩個條件同時成立則傳送完成
這方法或許可行......80分

我想找看看有沒有95分的方法

3月29日 10:01:47
轉換PDF檔 列印


Re: 請問8bit的MCU的EUSART 中斷傳送
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14128
等級: 72; EXP: 47
HP : 1072 / 1786
MP : 4709 / 70391
離線
在傳送的封包裡多送兩個無用的資料

3月29日 15:16:53
轉換PDF檔 列印


Re: 請問8bit的MCU的EUSART 中斷傳送
高級會員
註冊日期:
2013/02/27 11:13
所屬群組:
註冊會員
文章: 138
等級: 10; EXP: 79
HP : 0 / 244
MP : 46 / 3329
離線
如果週邊裝置不會對這無效的封包作用
這方法是可以嘗試

3月30日 15:11:14
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
線上教學影片
網頁捷徑
2017 Summer Elite 報名
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project