Re: 關于RS232的問題,請教大俠
|
||||
---|---|---|---|---|
版主
|
請先看一下 W401 C18 教育訓練裡的第四章後段 : 如何擴展RAM Array 到 512,再看看第五章裡有關 #pragma 的用法與中斷的設定方式與向量轉移的處理。目前看你的程式看不出來你的中斷是如何處理的,所以中斷應該是不會動作的。
http://www.microchip.com.tw/modules/w ... glefile.php?cid=4&lid=236 如有問題再來討論。
發表於: 2009/1/19 14:45
|
|||
|
Re: 關于RS232的問題,請教大俠
|
||||
---|---|---|---|---|
版主
|
參照:
1.當rbuff=512時,容易出現發少和發多的情況 很明顯的這是 rbuff 指摽的大小影響到一般的變數,也就是說 RAM 必共用了。 解決方式 : 將 ebuff 的指標位址利用 #pragme 宣告在特定的 BANK 裡,而一般的變數利用 #pragma near 的方式宣告在 Access Bank 裡。 將 rbuff 轉為陣列的宣告並賦予 512 的長度 ( rbuff[512] ) 這樣就不會與一般的變數位址衝突。不過對一個超過 256Bytes 的陣列宣告要有一些處理方式(修改LKR檔),你可以參考 W401 C18 教續訓練課程裡的第四章後面的修改例子。
發表於: 2009/1/14 9:27
|
|||
|
關于RS232的問題,請教大俠
|
||||
---|---|---|---|---|
資深會員
|
void tx512(uint16 rbuff,uint8 *buff )
{ uint16 m; temp3=0; for (m = 0; m < rbuff; m++) { temp3++; TXREG1=*buff++; while( 0==TXSTA1bits.TRMT ); } } 經常出現兩種情況1.當rbuff=512時,容易出現發少和發多的情況,我是通過全局變量temp3來測量發出的個數的,經常多出32個數據,少則不一定,有時候會出現在TRMT處等不到空,開關電源會產生影響嗎,如果rbuff=32,很少發生錯誤
發表於: 2009/1/13 20:57
|
|||
|