?? rsdocument.c
字號:
//=============================================================
// 文件名稱: RSDocument.c
// 實現功能: 串行通訊、各中斷服務程序
// 完成日期: 2004,7,19
//==============================================================
#include "SPCE061V004.h"
#define M_RX_FLAG 0x80
#define M_TX_FLAG 0x40
unsigned int uiRS_Buff; //串行口接收數據緩存
unsigned int uiRS_ReciveFlag; //串行口接收數據標識
unsigned int uiTX_Index; //串行口發送數據緩沖區,發送數據的索引號
unsigned int uiTX_Data_Number; //本次發送數據的個數
unsigned int uiTX_Buff[5]; //發送數據緩沖區 暫時設定為10個8bit的數據區域
//=============================================================
// 函數名稱: IRQ7()
// 功能描述: 串行中斷入口程序
// 語法格式: void IRQ7(void)
// 入口參數: 無
// 出口參數: 無
// 注意事項: 僅為用戶模型
//=============================================================
void IRQ7(void)__attribute__((ISR));
void IRQ7(void)
{
unsigned int Temp;
Temp = *P_UART_Command2;
if(Temp & M_RX_FLAG)
{ //接收中斷
uiRS_Buff=*P_UART_Data;
if(uiRS_Buff==0x00aa)
uiRS_ReciveFlag=1;
else
uiRS_ReciveFlag=0;
}
else
{ //發送中斷
uiTX_Index++;
if(uiTX_Index<uiTX_Data_Number)
{
if(uiTX_Index&0x0001) *P_UART_Data = uiTX_Buff[uiTX_Index>>1];
else *P_UART_Data = (uiTX_Buff[uiTX_Index>>1])>>8;
}
else
{ //緩沖區內數據發送完 關掉發送中斷
*P_UART_Command1 = 0x80;
}
}
}
//=============================================================
// 函數名稱: UART_SendChar(unsigned int uiNumber)
// 功能描述: 串行數據發送啟動程序 (另:本函數為了適用于其它
// 用法,故用這個比較"笨"的方法,便于其它用途的擴展嘛:)
// 語法格式: void UART_SendChar(unsigned itn uiNumber)
// 入口參數: 無
// 出口參數: 無
// 注意事項: 僅為用戶模型
//=============================================================
void UART_SendChar(unsigned int uiNumber)
{
uiTX_Data_Number = uiNumber;
*P_UART_Data = uiTX_Buff[0]>>8;
uiTX_Index = 0;
*P_UART_Command1 = 0xc0; //開發送中斷
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -