?? 原稿.c~
字號:
/*************************************************************************/
/*2007年5月16日串口發送中斷程序*/
/*************************************************************************/
#include "DSP2407A.h"
#include "mine20060907.h"
typedef unsigned int uint;
unsigned int cn;
unsigned int vc;
unsigned char InterruptFlag;
unsigned char x;
unsigned char m;
unsigned char flg=0;
const char *tra="AAA";
void main()
{
int i,j;
ESXM;
EOVM;
ECNF;
sys_init();
//*SCICTL2=0x80;
for(cn=0;cn<500;cn++){;}
while(1)
{
*SCICTL1|=0x02;
}
}
enable()
{
asm(" clrc INTM");
}
void UartSent( ) //發送服務程序
{
EINT;
while(1)
{
while(*SCICTL2&0x80==0x80)
{
{
*SCITXBUF='9';
for(cn=0;cn<500;cn++){;}
}
*SCICTL1|=0x03;
}
}
enable(); //開總中斷,因為一進入中斷服務程序總中斷就自動關閉了
}
void UartRec( ) //接收服務程序
{
*SCITXBUF='A';
enable(); //開總中斷,因為一進入中斷服務程序總中斷就自動關閉了
}
void interrupt uarttr( ) //中斷服務程序
{
switch (*PVIR) //根據中斷向量寄存器PVIR的值區別是接收還是發送中斷
{
case 6:UartRec( );break; //如果PIVR=6,則發生了接收中斷,執行接收服務程序
case 7:UartSent( );break; //如果PIVR=7,則發生了發送中斷,執行發送服務程序
}
}
//當由于干擾而引起其它中斷時,中斷進入此程序直接返回主程序
void sys_init(void)
{
DINT;
*WDCR=0x00E8;
*SCSR1=0x81FE;
*MCRA=0x3;
*PADATDIR=0x100;
*SCICTL1=0x03;
*SCICCR=0x07; //1個停止位,不使能奇偶校驗,空閑線多處理器模式,8位字符
//#0013H 使能接收和發送,SLEEP=0 禁止休眠
// *SCICTL1=0x13; //方式, 禁止接收錯誤中斷,TXWAKE=0 即沒
//有選定的發送特征
//*SCIHBAUD=0x2;
//*SCILBAUD=0x07; //波特率=9600B/S
*SCIHBAUD=0x00;
*SCILBAUD=0x2B; //波特率=115200B/S
*SCIPRI=0x60; //SCI中斷(接收和發送中斷)為低優先級中斷
*IMR=0x10; //使能UART中斷-INT1
*SCICTL2|=0x03; //使能接收和發送中斷
*SCICTL1=0x23; //使SCI脫離復位狀態
enable(); //使能總中斷
*SCITXBUF='';
}
void interrupt nothing()
{
return;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -