📄 iso.c
字号:
/*
//*************************************************************************
//
// 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: TWAIN.C
// Author: Wenkai Du
// Created: 18 Aug 98
// Modified:
// Revision: 1.0
//
//*************************************************************************
*/
#include <stdio.h>
#include <string.h>
#ifdef __C51__
//#include <reg51.h> /* special function register declarations */
#include "hardware.h"
#else
#include <dos.h>
#endif
#include "d12ci.h"
#include "mainloop.h"
#include "usb100.h"
#include "chap_9.h"
#include "iso.h"
extern CONTROL_XFER ControlData;
extern IO_REQUEST idata ioRequest;
extern EPPFLAGS bEPPflags;
unsigned char c1,c2;
unsigned char IsoDisable =1;
unsigned char IsoMode = 0; //ISO_IN|ISO_OUT;
unsigned char IsoOutPattern=0xF0;
unsigned char IsoOutPktLen=0;
unsigned char IsoOutDataBuff[4];
unsigned char IsoInPattern=0xF8;
unsigned char IsoInPktLen=0;
unsigned char IsoInDataBuff[4];
void EnableIsoMode()
{
if( ControlData.DeviceRequest.wLength == 0)
{
IsoMode &= ~ControlData.DeviceRequest.wIndex;
IsoMode |= ControlData.DeviceRequest.wValue;
printf("IsoMode %x\n",IsoMode );
if(IsoMode&ISO_LOOP)
{
IsoDisable =0;
IsoInPattern = 0;
IsoInPktLen = 17;
D12_SetEndpointStatus(5,0);
IsoOutPattern = 0;
IsoOutPktLen = 17;
D12_SetEndpointStatus(4,0);
}
else
{
if(IsoMode&ISO_IN)
{
IsoDisable =0;
IsoInPattern = 0xf8;
IsoInPktLen = 17;
D12_SetEndpointStatus(5,0);
printf("Iso-In Pattern %x, PktLen %x\n",IsoInPattern,IsoInPktLen);
memset(IsoInDataBuff,IsoInPattern,IsoInPktLen );
D12_WriteEndpoint(5,IsoInDataBuff,IsoInPktLen);
IsoInPattern ++ ;
printf("Iso-In Pattern %x, PktLen %x\n",IsoInPattern,IsoInPktLen);
memset(IsoInDataBuff,IsoInPattern,IsoInPktLen );
D12_WriteEndpoint(5,IsoInDataBuff,IsoInPktLen);
IsoInPattern ++ ;
}
if(IsoMode&ISO_OUT)
{
IsoDisable =0;
IsoOutPattern = 0;
IsoOutPktLen = 17;
D12_SetEndpointStatus(4,0);
}
}
single_transmit(0, 0);
}
else
stall_ep0();
}
#ifndef __C51__
void Wait4Ns( unsigned long timeNs)
{
unsigned long i;
for(i=0; i<timeNs; i++)
;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -