• slider image 514
  • slider image 516
  • slider image 517
  • slider image 518
  • slider image 519
:::


Browsing this Thread:   1 Anonymous Users






Re: CCS #int_RDA 中斷觀念問題
#3
高級會員
高級會員


查看用戶資訊
不好意思,漏了一點.還需要再宣告UART的各項協定.才能用STREAM的方式(fprintf,fgetc,fputc等)對UART PORT做傳送及接收.在我的例子中鮑率9600,N,8,1,UART PORT STREAM命名為"PC".
[#use rs232(baud=9600,PARITY=N,BITS=8,xmit=PIN_C6, rcv=PIN_C7, stream=PC)]

發表於: 2008/12/22 16:23
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: CCS #int_RDA 中斷觀念問題
#2
高級會員
高級會員


查看用戶資訊
我也是使用CCS,也用UART的中斷來接收字元放進一個接收緩衝區中.我提供我的方式,您看看能不能合用,有問題再討論.

首先在RESET後先給UART通信格式協定的設定,再啟動UART中斷及全域致能中斷.
先宣告一個全域變數的接收緩衝區"char Com_p[100];"以及一個緩衝區的指標."char *Com_p;",當中斷發生時,一次接收一個字元,再將接收到的字元一個一個放進接收緩衝區.程式碼範例如下:

void System_init(void)
{
setup_uart(9600);//通信格式協定的設定
enable_interrupts(INT_RDA);//致能UART中斷
enable_interrupts(GLOBAL);//致能中斷
}

#INT_RDA
void serial_isr()//使用中斷函式接收RS232的字元.
{
char Re_ch;
Re_ch=fgetc(PC);//接收一個字元
Com_buf[Com_p]=Re_ch;//放進接收緩衝區
Com_p++;
if(Com_p > 100)//判斷有無溢位(over flow)
{ OV_FLOW=1; Com_p=0; }
}

發表於: 2008/12/22 12:25
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


CCS #int_RDA 中斷觀念問題
#1
高級會員
高級會員


查看用戶資訊
之前有發過一篇UART的接收問題
http://www.microchip.com.tw/modules/n ... php?topic_id=6150&forum=1
對於CCS的中斷我有點模糊了 ~
希望有寫CCS的大大指點我一下 ~

#int_RDA  這個應該是中斷接收語法
下面片段
#int_RDA
void RDA_isr()
{
for(i=0 ; i<512 ; i++)
{
Msg_Array[i] = getc(); //接收字元一個個放進陣列
Ram_Array[i] = Msg_Array[i]; //複製到另一個陣列
}
{
for(i=0 ; i<512 ; i++)
printf("%c",Ram_Array[i]); //印出來
Msg_Array[i] = ‘ ‘; //清空
}
}
void main()
{
enable_interrupts(INT_RDA);
enable_interrupts(INT_TBE);
enable_interrupts(GLOBAL);

主程式裡目前沒有東西 ~

}
---------------------------------------------------------------------------------
#int_RDA 問過幾個大仔,這個就是接收中斷,CCS會自己產生
就因為如此所以我模糊了,我覺得是我不知道該把程式片段給設定
在哪邊的問題 ~
1. 我有把印出的程式片斷丟在主程式裡面,但那樣做沒有反應 ~
2. 我又試著把印出片段放在 #int_RDA(如我貼的) 裡面,可以印
出,但是只能印一次,這應該就是nicecookie大仔說的,TX時
我沒有把RX停掉導致  主要也是問這問題,CCS裡面我要停
RX怎麼停 !? 因為有人說CCS會自己產生,所以腦袋打結 …

發表於: 2008/12/22 10:35
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... ]

教育訓練中心

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