📄 d12op.c
字号:
#include "../inc/def.h"
#include "../inc/D12Def.h"
#include "../inc/utils.h"
#include "../inc/board.h"
#include "../inc/config.h"
#include "../inc/s3c4510b.h"
U8 *D12CmdAddr,*D12DatAddr;
void D12SetEpStat(U8 Ep,U8 Stat)
{
D12Cmd = Ep+0x40;
D12Dat = Stat;
}
void D12SetAddr(U8 Addr)
{
D12Cmd = 0xd0;
D12Dat = Addr;
}
void D12SetEp(U8 Val)
{
D12Cmd = 0xd8;
D12Dat = Val;
}
void D12SetDma(U8 Dma)
{
D12Cmd = 0xfb;
D12Dat = Dma;
}
void D12SetMode(U8 Val1, U8 Val2)
{
D12Cmd = 0xf3;
D12Dat = Val1;
D12Dat = Val2;
}
void D12SendResume()
{
D12Cmd = 0xf6;
}
void D12AckEp(U8 Ep)
{
D12Cmd = Ep;
D12Cmd = 0xf1;
if(!Ep)
D12Cmd = 0xf2;
}
U32 D12RdChipId()
{
U32 tmp;
D12Cmd = 0xfd;
//printf("/n one data=%d/n",tmp);
tmp = D12Dat;
tmp = tmp<<8|D12Dat;
//D12DatAddr=(U8 *)D12Dat;
//tmp=tmp<<8|(*D12DatAddr);
//printf("\n tmp= %i \n ",tmp);
return tmp;
}
U8 D12GetDma()
{
D12Cmd = 0xfb;
return D12Cmd;
//return *D12CmdAddr;
}
U8 D12RdEp(U8 Ep,U8 buf[],U8 cnt)
{
U8 tmp;
D12SelEp(Ep);
if(D12Cmd&1)
//if((*D12CmdAddr)&1)
{
D12Cmd = 0xf0;
tmp = D12Cmd;
tmp = D12Cmd;
if(tmp<cnt)
cnt = tmp;
tmp = cnt;
while(cnt)
{
*buf++ = D12Cmd;
//*buf++=*D12CmdAddr;
cnt--;
}
//*D12CmdAddr=0xf2;
D12Cmd = 0xf2;
return tmp;
}
else
return 0;
}
void D12WrEp(U8 Ep, U8 buf[], U8 cnt)
{
while(1)
{
D12SelEp(Ep);
if(!(D12Cmd&1))
//if(!((*D12CmdAddr)&1))
break;
}
D12Cmd = 0xf0;
//*D12CmdAddr=0xf0;
D12Dat = 0;
//*D12DatAddr=0;
//*D12DatAddr=cnt;
D12Dat = cnt;
while(cnt)
{
D12Dat = *buf++;
//*D12DatAddr=*buf++;
cnt--;
}
D12Cmd = 0xfa;
//*D12DatAddr=0xfa;
}
U8 D12RdInt()
{
//U8 *D12CmdAddr;
// D12CmdAddr=(U8 *)D12Cmd;
// *D12DatAddr=0xf4;
D12Cmd = 0xf4;
return D12Cmd;
//return *D12DatAddr;
}
//add by changguofeng
void D12Main(void)
{
U8 i;
printf( "\nPDIUSBD12 TEST \n" ) ;
//while(1)
//{ UsbRdChipId();
//}
if(UsbRdChipId()==0x1210)
{
puts("Pdiusbd12 Found, chip id = 0x1210\n");
printf( "Please connect USB Line from PC to the Board \n" ) ;
printf( "run LEDDEMO.EXE in the PC and Test \n" ) ;
if( UsbInit() == 1 ) //STAUS_ERR
{
printf( "USB Device Initial is Error! \n" ) ;
return ;
}
while(getkey()!=ESC_KEY)
{
i = UsbQueryInt();
//if(i) printf("%x\n", i);
UsbIntProc(i);
}
D12SetMode(MyD12EpCfgOff, D12Pll24M); //pull-up off
}
else
{
puts("No Pdiusbd12 Found\n");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -