#include #include #include "CyAPI.h" // GUID {0EFA2C93-0C7B-454F-9403-D638F6C37E65} static GUID GUID_KNJN_FX2 = {0x0EFA2C93, 0x0C7B, 0x454F, 0x94, 0x03, 0xD6, 0x38, 0xF6, 0xC3, 0x7E, 0x65}; void main() { //Create Cypress CyUSB object CCyUSBDevice *MyUSBDevice = new CCyUSBDevice(NULL, GUID_KNJN_FX2); //This is transfered byte buffer. unsigned char transferbuf[512]; //HiRes Perf Counter __int64 counter1 = 0, counter2 = 0, freq = 0; LONG transferlen = 512; //Get HiRes Performance Counter Freq QueryPerformanceFrequency((LARGE_INTEGER *)&freq); //Get Hires Perf Counter: Start QueryPerformanceCounter((LARGE_INTEGER *)&counter1); //Execute Transfer 1000 times = 512KB. for (int i = 0 ; i < 1000; i++) { MyUSBDevice->EndPoints[3]->XferData(transferbuf, transferlen); } //Get Hires Perf Counter: Finish QueryPerformanceCounter((LARGE_INTEGER *)&counter2); printf("Counter: %d\n", counter2 - counter1); printf("QueryPerformanceCounter minimum resolution: 1/%d Seconds.\n",freq); printf("512bytes x 1000 write time: %f seconds.",((counter2 - counter1) * 1.0 / freq)); printf("BandWidth = %d KB/sec.\n", transferlen * freq / (counter2 - counter1)); delete MyUSBDevice; }