EasyManua.ls Logo

STC micro STC8A8K64D4 Series - Page 676

Default Icon
901 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
STC8A8K64D4 Series Manual
- 660 -
void main(void)
{
u16 i;
P0M1 = 0x00; P0M0 = 0x00; //set as quasi-bidirectional port
P1M1 = 0x00; P1M0 = 0x00; //set as quasi-bidirectional port
P2M1 = 0x00; P2M0 = 0x00; //set as quasi-bidirectional port
P3M1 = 0x00; P3M0 = 0x00; //set as quasi-bidirectional port
P4M1 = 0x00; P4M0 = 0x00; //set as quasi-bidirectional port
P5M1 = 0x00; P5M0 = 0x00; //set as quasi-bidirectional port
P6M1 = 0x00; P6M0 = 0x00; //set as quasi-bidirectional port
P7M1 = 0x00; P7M0 = 0x00; //set as quasi-bidirectional port
for(i=0; i<256; i++)
{
DMABuffer[i] = i;
}
AUXR = 0x80; //Timer0 set as 1T, 16 bits timer auto-reload,
TH0 = (u8)(Timer0_Reload / 256);
TL0 = (u8)(Timer0_Reload % 256);
ET0 = 1; //Timer0 interrupt enable
TR0 = 1; //Tiner0 run
UART1_config(1); //Use Timer1 as baud rate generator.
DMA_Config();
EA = 1; //enable CPU interrupt
printf("UART1 DMA Timeout Programme!\r\n"); //UART1 sends a string
DMATxFlag = 0;
DMARxFlag = 0;
while (1)
{
if((DMATxFlag) && (DMARxFlag)) //Judging the send completion flag and the reception completion
flag
{
Rx_cnt = 0;
RX1_TimeOut = 0;
printf("\r\nUART1 DMA FULL!\r\n"); //UART1 sends a string
DMATxFlag = 0;
DMA_UR1T_CR = 0xc0; //bit7 1:Enable UART1_DMA,
//bit6 1:Start UART1_DMA automatic transmission
DMARxFlag = 0;
DMA_UR1R_CR = 0xa1; //bit7 1:Enable UART1_DMA,
//bit5 1:Start UART1_DMA automatic reception,
//bit0 1:clear FIFO
}
if(B_1ms) //reach 1ms
{
B_1ms = 0;
if(RX1_TimeOut > 0) //timeout count
{
if(--RX1_TimeOut == 0)
{
DMA_UR1R_CR = 0x00; //Disable UART1_DMA
printf("\r\nUART1 Timeout!\r\n"); //UART1 sends a string

Table of Contents

Related product manuals