d12ci.h
来自「pdiusbd12的一个固件程序」· C头文件 代码 · 共 91 行
H
91 行
/*
//*************************************************************************
//
// P H I L I P S P R O P R I E T A R Y
//
// COPYRIGHT (c) 1997 BY PHILIPS SINGAPORE.
// -- ALL RIGHTS RESERVED --
//
// File Name: D12CI.H
// Author: Wenkai Du
// Created: 8 Jun 98
// Modified:
// Revision: 2.2
//
//*************************************************************************
//
// 98/11/26 Bug fix: D12_ENDP5INTENABLE (WK)
// 98/12/2 Added D12_ReadMainEndpoint to support double buffer (WK)
//*************************************************************************
*/
#ifndef __D12CI_H__
#define __D12CI_H__
#define D12_NOLAZYCLOCK 0x02
#define D12_CLOCKRUNNING 0x04
#define D12_INTERRUPTMODE 0x08
#define D12_SOFTCONNECT 0x10
#define D12_ENDP_NONISO 0x00
#define D12_ENDP_ISOOUT 0x40
#define D12_ENDP_ISOIN 0x80
#define D12_ENDP_ISOIO 0xC0
#define D12_CLOCK_12M 0x03
#define D12_CLOCK_4M 0x0b
#define D12_SETTOONE 0x40
#define D12_SOFONLY 0x80
#define D12_DMASINGLE 0x00
#define D12_BURST_4 0x01
#define D12_BURST_8 0x02
#define D12_BURST_16 0x03
#define D12_DMAENABLE 0x04
#define D12_DMA_INTOKEN 0x08
#define D12_AUTOLOAD 0x10
#define D12_NORMALPLUSSOF 0x20
#define D12_ENDP4INTENABLE 0x40
#define D12_ENDP5INTENABLE 0x80 // bug fixed in V2.1
#define D12_INT_ENDP0OUT 0x01
#define D12_INT_ENDP0IN 0x02
#define D12_INT_ENDP1OUT 0x04
#define D12_INT_ENDP1IN 0x08
#define D12_INT_ENDP2OUT 0x10
#define D12_INT_ENDP2IN 0x20
#define D12_INT_BUSRESET 0x40
#define D12_INT_SUSPENDCHANGE 0x80
#define D12_INT_EOT 0x0100
#define D12_SETUPPACKET 0x20
#define D12_BUFFER0FULL 0x20
#define D12_BUFFER1FULL 0x40
#define D12_FULLEMPTY 0x01
#define D12_STALL 0x02
void D12_SetAddressEnable(unsigned char bAddress, unsigned char bEnable);//设置地址使能
void D12_SetEndpointEnable(unsigned char bEnable);//设置端点使能
void D12_SetMode(unsigned char bConfig, unsigned char bClkDiv);//设置模式命令
void D12_SetDMA(unsigned char bMode);//设置DMA
unsigned char D12_GetDMA(void);//设置DMA
unsigned short D12_ReadInterruptRegister(void);//读中断寄存器
unsigned char D12_SelectEndpoint(unsigned char bEndp);//端点选择命令
unsigned char D12_ReadLastTransactionStatus(unsigned char bEndp);//读端点最后处理状态
unsigned char D12_ReadEndpointStatus(unsigned char bEndp);//读端点状态
void D12_SetEndpointStatus(unsigned char bEndp, unsigned char bStalled);//设置端点状态
void D12_SendResume(void);//发送回复命令
unsigned short D12_ReadCurrentFrameNumber(void);//读当前帧状态
unsigned short D12_ReadChipID(void);//读芯片ID
unsigned char D12_ReadEndpoint(unsigned char endp, unsigned char len, unsigned char * buf);//读端点数据
unsigned char D12_WriteEndpoint(unsigned char endp, unsigned char len, unsigned char * buf);//向端点写数据
void D12_AcknowledgeEndpoint(unsigned char endp);//端点应答处理
unsigned char D12_ReadMainEndpoint(unsigned char * buf); // V2.2读主端点数据
unsigned char inportb(unsigned int addr);//向D12发送数据或者命令
extern void outportb(unsigned int addr, unsigned char Data);//从D12读取数据
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?