?? usbd12_b.c
字號:
//===================================================================//
// Project Name : MOTOROLA-PDIUSBD12 USB-MCS CARD
// Module Name : Master Firmware Program
// Product Type : License
// OS/Dev Tool : CodeWarrior Development Studio for HC(S)08 Microcontrollers
// Original Author : Ming Zeng
// Organization : Tsinghua University , DEP
// Original Date : Feb, 20, 2003
// Addr : Tsinghua University, Beijing City
// TEL :
// EMail : ming@zming.net
// Website : http://www.zming.net
// Copyright : Copyright ZMing.net, 2003
// Comments :
//
//
//===================================================================//
#include "HAL.H"
#include "COMMON.H"
#include "USBD12.H"
#include "VDOR.H"
extern COMMONFLAGS bCOMMONFlags;
extern unsigned char GenBuf[GENBUF_LENGH];
extern unsigned char nFlashPhase;
extern CODE_DATA CodeData;
/* 目前未使用
void USBD12_SendResume(void)
{
outportb(IC_D12_COMMAND, 0xF6);
}
unsigned short USBD12_ReadCurrentFrameNumber(void)
{
unsigned short i,j;
if(bCOMMONFlags.bits.bIN_ISR == 0)
DisableInterrupts;
outportb(IC_D12_COMMAND, 0xF5);
i= inportb(IC_D12_DATA);
j = inportb(IC_D12_DATA);
i += (j<<8);
if(bCOMMONFlags.bits.bIN_ISR == 0)
EnableInterrupts;
return i;
}
*/
unsigned char USBD12_WriteEndpoint(unsigned char endp, unsigned char * buf, unsigned char len)
{
unsigned char i;
if(bCOMMONFlags.bits.bIN_ISR == 0)
DisableInterrupts;
outportb(IC_D12_COMMAND, endp);
inportb(IC_D12_DATA);
outportb(IC_D12_COMMAND, 0xF0);
outportb(IC_D12_DATA, 0);
outportb(IC_D12_DATA, len);
for(i=0; i<len; i++)
outportb(IC_D12_DATA, *(buf+i));
outportb(IC_D12_COMMAND, 0xFA);
if(bCOMMONFlags.bits.bIN_ISR == 0)
EnableInterrupts;
return len;
}
unsigned char USBD12_WriteEndpointOnce(unsigned char endp, unsigned char * buf, unsigned char len)
{
unsigned char i;
if(bCOMMONFlags.bits.bIN_ISR == 0)
DisableInterrupts;
outportb(IC_D12_COMMAND, endp);
inportb(IC_D12_DATA);
outportb(IC_D12_COMMAND, 0xF0);
outportb(IC_D12_DATA, 0);
outportb(IC_D12_DATA, len);
for(i=0; i<len; i++)
{
outportb(IC_D12_DATA, *(buf+i));
*(buf+i) = 0;
}
outportb(IC_D12_COMMAND, 0xFA);
if(bCOMMONFlags.bits.bIN_ISR == 0)
EnableInterrupts;
return len;
}
void USBD12_AcknowledgeEndpoint(unsigned char endp)
{
outportb(IC_D12_COMMAND, endp);
outportb(IC_D12_COMMAND, 0xF1);
if(endp == 0)
outportb(IC_D12_COMMAND, 0xF2);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -