📄 extdmas.c
字号:
/*****************************************
NAME: Extdmas.c
DESC: External DMA test(slave board)
Request signal is generated in this program
HISTORY:
2003.04.09 Baik Seung Woo ver 0.0
*****************************************/
#include <string.h>
#include "24a0addr.h"
#include "24a0lib.h"
#include "option.h"
#include "extdmam.h"
#include "def.h"
void Test_Dmareq(void)
{
int i, ack_count, total_count,c;
rGPCON_U=(rGPCON_U&~(0xcc00))|(0x0<<14)|(0x1<<10);//ch-0
// rGPCON_U=(rGPCON_U&~(0x33000))|(0x0<<16)|(0x1<<12);//ch-1
rGPDAT=(1<<24);//ch-0
// rGPDAT=(1<<25);//ch-1
Uart_Printf("1.byte single\n2.halfword single\n3.word single\n4.byte burst\n5.halfword burst\n6.word burst\n");
Uart_Printf("select mode same as master board: ");
c = Uart_Getch();
switch(c)
{
case '1':
Uart_Printf("byte single transfer\n");
//total_count=0xfffff;
total_count=32;
break;
case '2':
Uart_Printf("halfword single transfer\n");
total_count=16;
//total_count=0xfffff;
break;
case '3':
Uart_Printf("word single transfer\n");
total_count=8;
//total_count=0xfffff;
break;
case '4':
Uart_Printf("byte burst transfer\n");
total_count=8;
//total_count=0xfffff;
break;
case '5':
Uart_Printf("halfword burst transfer\n");
total_count=4;
//total_count=0xfffff;
break;
case '6':
Uart_Printf("word burst transfer\n");
total_count=2;
//total_count=0xfffff;
break;
default:
break;
}
Uart_Printf("Setting a master board\n");
Uart_Printf("Enter any key\n");
rGPDAT=(1<<24);//ch-0
Uart_Getch();
ack_count=0;
/////////////////Handshake whole/////////////////
/*
rGPDAT=(0<<24);//ch-0
while(rGPDAT&(1<<26));
// for(i=0;i<11;i++);
for(i=0;i<5;i++);
rGPDAT=(1<<24);//ch-0
*/
/////////////////Demand single////////////////////
/*
rGPDAT&=~(1<<24);//ch-0
while(1)
{
if(Uart_GetKey())
break;
}
rGPDAT=(1<<24);//ch-0
*/
/////////////////Handshake single/////////////////
/*
for(i=0; i<32; i++)//ch-0
{
rGPDAT=(0<<24);//ch-0
while(rGPDAT&(1<<26));
Uart_Printf("%dth ack~~!!\n", i);
rGPDAT=(0x1<<24);
while(!(rGPDAT&(1<<26)));
}
*/
//////////////////////////////////////////////////////////////////////////////
//Single Handshake mode
//while(1)//ch-0
while(ack_count<total_count)
{
//Uart_Printf("If you want to transfer, then press any key, %dth iteration.. \n", ack_count);
//Uart_Getch();
rGPDAT=(0<<24);//ch-0
while(rGPDAT&(1<<26));
for(i=0;i<5;i++);
rGPDAT=(0x1<<24);
ack_count++;
// Uart_Printf("%dth ack~~!!\n", ack_count);
//if(ack_count==total_count) break;
//rGPDAT=(0x1<<24);
//rGPDAT=(0x1<<24);
while(!(rGPDAT&(1<<26)))
{
if(Uart_GetKey()!=0)break;
}
// for(i=0;i<1000;i++);
for(i=0;i<5;i++);
}
//rGPDAT=(0x1<<24);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -