?? 16c752例程.txt
字號:
unsigned int receive_232_data[160];
unsigned int receive_count;
unsigned int deal_count;
unsigned int temp;
unsigned int over_flag;
int i=0;
void main(void)
{
over_flag = 0;
receive_count = 0;
deal_count = 0;
DINT;
SystemInit();
init_UART();
*IFR = 0x3f;
*IMR = 0x01;
EINT;
for(;;)
{
if(receive_count != deal_count)
{
temp = UARTA_LSR&0x40;
if(temp == 0x40)
{
for(i = 0; i < 16; i++)
{
UARTA_THR = receive_232_data[16*deal_count+i];
}
deal_count++;
if(deal_count == 10) deal_count = 0;
}
}
/*
for(i = 0; i < 0xffff; i++)
{
asm(" NOP");
}
temp = UARTA_LSR&0x01;
if(temp == 0x01)
{
for(i = 0; i < 16; i++)
{
receive_232_data[i] = UARTA_RHR&0xff;
}
over_flag = 1;
} */
}
}
void SystemInit(void)
{
WSGR = 0x1ff;
*WDCR = 0x6f;
*SCSR1 = 0x0200;
*MCRA = 0x04;
*XINT1CR = 0x01;
}
void PHANTOM(void)
{
}
void init_UART(void)
{
/* UARTA_LCR = 0xbf;
UARTA_EFR = 0x10;
UARTA_LCR = 0;
UARTA_MCR = 0;*/
UARTA_LCR = (data_w8+data_s1+uart_parity+LC_1_DLAB); /*8位數據 1停止位 偶校驗位 開啟除數轉換*/
UARTA_DLL = buad_19k2_l; /*9.6K波特率*/
UARTA_DLH = buad_19k2_h;
UARTA_LCR = (data_w8+data_s1+uart_parity+LC_0_DLAB); /*8位數據 1停止位 偶校驗位 開啟其余寄存器轉換*/
UARTA_MCR = UartLoop;
UARTA_FCR = fifo_reset;
// UARTA_IER = 0;
UARTA_FCR = fifo_enable+fifo_txdip16+fifo_rxdip16;
// temp = UARTA_RHR;
UARTA_IER = uartint_rhr;
}
interrupt void c_int1(void)
{
int i;
if((*PIVR & 0x01) == 0x01)
{
if((INT1_RD & 0x02) == 0x02)
{
if((UARTA_LSR&0x01) == 0x01)
{
for(i = 0; i < 16; i++)
{
receive_232_data[16*receive_count+i] = UARTA_RHR&0xff;
}
receive_count++;
if(receive_count == 10) receive_count = 0;
}
else
{
UARTA_FCR = 0x02;
}
}
}
*XINT1CR = *XINT1CR | 0x8000;
*IFR = 0x01;
EINT;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -