• slider image 442
  • slider image 492
  • slider image 493
  • slider image 494
  • slider image 495
  • slider image 496
:::


Browsing this Thread:   1 Anonymous Users






Re: 關于RS232的問題,請教大俠
#4
版主
版主


查看用戶資訊
請先看一下 W401 C18 教育訓練裡的第四章後段 : 如何擴展RAM Array 到 512,再看看第五章裡有關 #pragma 的用法與中斷的設定方式與向量轉移的處理。目前看你的程式看不出來你的中斷是如何處理的,所以中斷應該是不會動作的。
http://www.microchip.com.tw/modules/w ... glefile.php?cid=4&lid=236

如有問題再來討論。

發表於: 2009/1/19 14:45
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 關于RS232的問題,請教大俠
#3
資深會員
資深會員


查看用戶資訊
謝謝:我已經把要發送的數據放在固定的REM了,可不知方法對不對
#pragma udata DATA485=0x500
far unsigned char DATA485[32];
#pragma udata k=0x800
far unsigned char k[512];
#pragma udata j=0x600
far unsigned char j[512];
lkr文件我已經改過了,請教C中的中斷是如何返回的,我用中斷的方式發RS232,做了個陷阱等發送完,卻抓不到
//TXCOUNT=32;
//PIE1bits.TX1IE=1;//使能发送中断
//TXSTAbits.TXEN=1;//发送使能
// send_count=0;//*发送数据计数清0*/
// pointer=&DATA485[0];//*发送指针指向发送数据数组首地址*/
// TXREG1=*pointer++;//*发送第一个数据后,将发送指针加1*/
// TXSTA1bits.TXEN=1;//*使能发送*/
//do{
R485_RE=0;//发送
//R485_RE=1;//发送
// _asm
// nop
// nop
// nop
// nop
// nop
// nop
// nop
// nop
// _endasm
//}
//while(tranflag==1);

// _asm
// nop
// nop
// nop
// nop
// nop
// nop
// nop
// nop
// _endasm
//************************************************************
// 低优先中断服务程序入口函数void PIC18F_Low_isr(void)
//************************************************************
void PIC18F_Low_isr(void)
{
if(PIR1bits.RC1IF==1)//*RS232接收中断*/
{
PIR1bits.RC1IF=0;/*清中断标志*/
receive232[receive_count]=RCREG1;//*接收数据并存储*/
receive_count++;//*接收计数器加1*/
if(receive_count>32)//*如果已经接收到32个数据*/
{
receive_count=0;//*接收计数器清0*/
SciReceiveFlag=1;//*置接收到8个数据标志*/
}
}
//*中断发送数据方式且为发送中断*/
else if(PIR1bits.TX1IF==1)
{
//FLAGLED=0;
//PORTFbits.RF0=1;
if(send_count>TXCOUNT)//*已经发送完个数*/
{
PIE1bits.TXIE=0;//使能发送中断
TXSTA1bits.TXEN=0;//*发送不使能*/
tranflag=0;//发送完成,置接收
return;
}
else
{
while( 0==TXSTA1bits.TRMT );

TXREG1=*pointer++;//*发送当前应发送数据,发送指针加1*/
send_count++;//*发送计数器加1*/

// DELAY1();
}
}
}

發表於: 2009/1/17 21:24
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 關于RS232的問題,請教大俠
#2
版主
版主


查看用戶資訊
參照:
1.當rbuff=512時,容易出現發少和發多的情況
如果rbuff=32,很少發生錯誤


很明顯的這是 rbuff 指摽的大小影響到一般的變數,也就是說 RAM 必共用了。
解決方式 : 將 ebuff 的指標位址利用 #pragme 宣告在特定的 BANK 裡,而一般的變數利用 #pragma near 的方式宣告在 Access Bank 裡。

將 rbuff 轉為陣列的宣告並賦予 512 的長度 ( rbuff[512] ) 這樣就不會與一般的變數位址衝突。不過對一個超過 256Bytes 的陣列宣告要有一些處理方式(修改LKR檔),你可以參考 W401 C18 教續訓練課程裡的第四章後面的修改例子。

發表於: 2009/1/14 9:27
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


關于RS232的問題,請教大俠
#1
資深會員
資深會員


查看用戶資訊
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
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------