亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cpld_dmadlg.cpp

?? 開發(fā)USB2.0接口產(chǎn)品的程序設(shè)計(jì)例程
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// CPLD_DMADlg.cpp : implementation file
//

#include "stdafx.h"
#include "CPLD_DMA.h"
#include "CPLD_DMADlg.h"
#include "USB20C.H"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

//------------------------------------
//本模塊所用的公用變量
//------------------------------------
int      gApi;
char     *temp;
char     str[10];
int      DriverCount;
char     a[5];
char     convent[50];
char     strChar[100];
CString  strText;
BOOL     bl_Init=false;

BOOL     bl_ChangeIFC=false;
BOOL     bl_Step=false;
long     showSize[40];
int      vToCount=41;
int      iNext;
//-------------------------------------
__int64    sumCount;
//-------------------------------------
//讀寫線程
UINT Run_ReadThread(LPVOID param);
UINT Run_WriteThread(LPVOID param);
//-------------------------------------
//SetIFCFG(參數(shù)1..6)
struct IFCNumber
{
   BOOL     bl_Local;         // 1 使用內(nèi)部同步時鐘=True
   BOOL     bl_48HMz;         // 2 使用內(nèi)部30HMz
   BOOL     bl_Out;           // 3 輸出
   BOOL     bl_FanXiang;      // 4 不翻轉(zhuǎn)   
   BOOL     bl_FIFO;          // 5 同步DMA  
   BOOL     bl_One;           // 6 FIFO提前一個周期
}IFCNumberType;

//-------------------------------------
class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
		// No message handlers
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCPLD_DMADlg dialog

CCPLD_DMADlg::CCPLD_DMADlg(CWnd* pParent /*=NULL*/)
	: CDialog(CCPLD_DMADlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CCPLD_DMADlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON1);
}

void CCPLD_DMADlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCPLD_DMADlg)
	DDX_Control(pDX, IDC_LIST1, m_List);
	DDX_Control(pDX, IDC_CHECK3, cheFIFO);
	DDX_Control(pDX, IDC_CHECK2, cheFanXiang);
	DDX_Control(pDX, IDC_CHECK1, che48HMz);
	DDX_Control(pDX, IDC_EDIT3, m_Edit3);
	DDX_Control(pDX, IDC_EDIT2, m_Edit2);
	DDX_Control(pDX, IDC_EDIT1, m_Edit1);
	DDX_Control(pDX, IDC_BUTTON1, cmdReadDMA);
	DDX_Control(pDX, IDC_BUTTON2, cmdWriteDMA);
	DDX_Control(pDX, IDC_BUTTON3, cmdStep);
	DDX_Control(pDX, IDC_BUTTON4, cmdExit);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CCPLD_DMADlg, CDialog)
	//{{AFX_MSG_MAP(CCPLD_DMADlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_BUTTON4, OncmdExit)
	ON_BN_CLICKED(IDC_CHECK1, Onche48HMz)
	ON_BN_CLICKED(IDC_CHECK2, OncheFanXiang)
	ON_BN_CLICKED(IDC_CHECK3, OncheFIFO)
	ON_BN_CLICKED(IDC_BUTTON3, OnCmdStep)
	ON_BN_CLICKED(IDC_BUTTON1, OnCmdReadDMA)
	ON_WM_TIMER()
	ON_BN_CLICKED(IDC_BUTTON2, OnCmdWriteDMA)
	ON_WM_CLOSE()
	ON_BN_CLICKED(IDC_BUTTON5, OnNEW_ReadDMA)
	ON_BN_CLICKED(IDC_BUTTON6, OnnewWrite_DMA)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCPLD_DMADlg message handlers

BOOL CCPLD_DMADlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Add "About..." menu item to system menu.

	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here

	/*/------------------------------------
	USB20C 演示 讀寫CPLD DMA 從這里開始....
	首先加載 USB20C.DLL 動態(tài)庫 到當(dāng)前緩沖.
	------------------------------------/*/
	
	  USB20C_DLLInit();
	  gApi=USB20C_EnumDeviceCount();

      itoa(gApi,a,10);
	  strcat(strChar,"函數(shù): USB20C_EnumDeviceCount  返回值: ");
	  strcat(strChar,a);
	  
	  if (gApi>=1)
	  {
		  temp=" 枚舉設(shè)備成功。";
		  strcat(strChar,temp);
		  m_List.AddString(strChar);
	  }
	  else
	  {
		  temp=" 枚舉設(shè)備失敗。";
		  strcat(strChar,temp);
		  m_List.AddString(strChar);
		 
		  //當(dāng)沒有設(shè)備連接時使讀寫DMA功能不可操作
		  Enable_But(false);
	  }

	  gApi=USB20C_Init(0, 1);
	  itoa(gApi,a,10);
	  strcpy(strChar,"函數(shù): USB20C_Init  返回值: ");
	  strcat(strChar,a);

	  switch (gApi)
	  {
	  case 0:
		  temp=" 不能初始化設(shè)備。";
		  strcat(strChar,temp);
		  m_List.AddString(strChar);

		  //當(dāng)沒有設(shè)備連接時使讀寫DMA功能不可操作
		  Enable_But(false);
		  break;
      case 1:
		  temp=" 模塊工作在全速模式(USB1.1)。";
		  strcat(strChar,temp);
		  m_List.AddString(strChar);
		  break;
	  case 2:
		  temp=" 模塊工作在高速模式(USB2.0)。";
		  strcat(strChar,temp);
		  m_List.AddString(strChar);
         break;
	  }
      
	  //------------------------------------
	  /*/ 初始化設(shè)置m_Edit1
	  --------------------------/*/
	  m_Edit1.SetSel(0,-1);
	  strText="已傳輸(秒)";
      m_Edit1.ReplaceSel(strText);

      /*/初始化設(shè)置m_Edit2
	  -------------------------/*/
	  m_Edit2.SetSel(0,-1);
	  strText="傳輸(字節(jié))";
      m_Edit2.ReplaceSel(strText);

      /*/ 初始化設(shè)置m_Edit3
      -------------------------/*/
	  m_Edit3.SetSel(0,-1);
	  strText="傳輸速率(秒/字節(jié))";
      m_Edit3.ReplaceSel(strText);
    
	  /*/--------------------------
	  初始化SetIFCFG函數(shù)參數(shù) ---/*/

	  Init_SetIFCFG();
	  //--------------------------

	return TRUE;  // return TRUE  unless you set the focus to a control
}
void CCPLD_DMADlg::Init_SetIFCFG()
{
	/*/初始化SetIFCFG函數(shù)參數(shù)
	----------------------------/*/
	
	IFCNumberType.bl_Local =true;    //用內(nèi)部的同步時鐘(true 內(nèi)部同步時鐘;false外部同步時鐘)
    IFCNumberType.bl_48HMz=false;     //使用內(nèi)部時鐘(true 同步時鐘48HMz;false 同步時鐘30HMz)
	IFCNumberType.bl_Out=true;       //允許輸出(true輸出;false不輸出)
	IFCNumberType.bl_FanXiang=false; //不翻轉(zhuǎn)(true翻轉(zhuǎn);false不翻轉(zhuǎn))
	IFCNumberType.bl_FIFO=false;     //使用DMA傳輸(true異步;false同步)
	IFCNumberType.bl_One=false;      //同步DMA傳輸時,FIFO標(biāo)志提前一個時鐘周期

}
void CCPLD_DMADlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CCPLD_DMADlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CCPLD_DMADlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

void CCPLD_DMADlg::OncmdExit() 
{
	//終止當(dāng)前讀寫 DMA 線程
   try
   {
	bl_Step=false;
	KillTimer(1);
    USB20C_EndDMA();
    //關(guān)閉窗口時斷開與設(shè)備的連接
    USB20C_Done();
    
	//關(guān)閉窗口時釋放USB20C.DLL動態(tài)連接庫
    USB20C_DLLDone();

	//OnCancel();
	CDialog::OnCancel();
   }
   catch (...)
	{
    MessageBox(" Close Error!!!!!!","UUUUUUUU");
	}
}
void CCPLD_DMADlg::Enable_But(BOOL blTrue)
{
	/*/------------------------------
	如果系統(tǒng)初始化失敗,禁用讀寫鍵
	-------------------------------/*/
    cmdReadDMA.EnableWindow(blTrue);
	cmdWriteDMA.EnableWindow(blTrue);
	cmdStep.EnableWindow(blTrue);
}
void CCPLD_DMADlg::but_Enable(BOOL blTrue)
{
    /*/------------------------------
	開始讀時禁用寫鍵,反之禁用讀鍵
	-------------------------------/*/
	cmdReadDMA.EnableWindow(blTrue);
	cmdWriteDMA.EnableWindow(blTrue);
}

void CCPLD_DMADlg::Onche48HMz() 
{
	/*/---------------------------------------
	選擇使用48HMz內(nèi)部時鐘時改變bl_48HMz標(biāo)識
    ---------------------------------------/*/

	CButton *p;
	p=(CButton*) GetDlgItem(IDC_CHECK1);

	if(p->GetCheck())
	{
		
		IFCNumberType.bl_48HMz=true;
		bl_ChangeIFC=true;
	}
	else
	{
		
		IFCNumberType.bl_48HMz=false;
		bl_ChangeIFC=true;
	}
}

void CCPLD_DMADlg::OncheFanXiang() 
{
	/*/-----------------------------------------
	選擇使用同步時鐘反向時設(shè)置bl_FanXing標(biāo)示
    -----------------------------------------/*/
	CButton *p;
	p=(CButton*) GetDlgItem(IDC_CHECK2);

	if(p->GetCheck())
	{
		
		IFCNumberType.bl_FanXiang=true;
		bl_ChangeIFC=true;
	}
	else
	{
		IFCNumberType.bl_FanXiang=false;
		bl_ChangeIFC=true;
	}
}

void CCPLD_DMADlg::OncheFIFO() 
{
    /*/---------------------------------------------
	選擇使用FIFOFlag提前一個周期時改變bl_FIFO標(biāo)示
    --------------------------------------------/*/
	CButton *p;
	p=(CButton *) GetDlgItem(IDC_CHECK3);
	if(p->GetCheck())
	{
        IFCNumberType.bl_FIFO=true;
		bl_ChangeIFC=true;
	}
	else
	{
    	IFCNumberType.bl_FIFO=false;
		bl_ChangeIFC=true;
	}
}

CString CCPLD_DMADlg::ShowMsg(CString cText)
{
    m_Edit1.SetSel(0,-1);
   	m_Edit1.ReplaceSel(cText);
	return " ";
}
void CCPLD_DMADlg::CreateTimer()
{
	/*/---------------------------------
	設(shè)置計(jì)時器1,100ms
	---------------------------------/*/
	SetTimer(1,100,NULL);

} 
void CCPLD_DMADlg::DMARead()
{
    /*/----------------------------------
	這是讀 DMA 的測試涵數(shù)屬于臨時
	----------------------------------/*/
	 int dataSize;
	 int DataRead[1];

     byte Buf[65536];
     dataSize = 65536;
    
     if (USB20C_EndDMA()==false)
	 {
        MessageBox("結(jié)束DMA出錯。", "USB20C_讀DMA",MB_ICONINFORMATION+MB_OK);
		bl_Step=false;
	 }
     
     if (USB20C_SetIFCFG(IFCNumberType.bl_Local,IFCNumberType.bl_48HMz,IFCNumberType.bl_Out,IFCNumberType.bl_FanXiang,IFCNumberType.bl_FIFO,IFCNumberType.bl_One))
	 {
		 /*
           'function USB20C_SetIFCFG(IntIFCLK, IntClk48MHz, IntClkOutEn, IFCLKInvert, AsyncFIFO, OnePulseEarly :Boolean): Boolean; StdCall;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费成人在线网站| 午夜av电影一区| 亚洲美女少妇撒尿| 久草中文综合在线| 欧美性色欧美a在线播放| 国产亚洲综合av| 三级欧美在线一区| 91在线观看免费视频| 日韩欧美国产电影| 日韩精品欧美成人高清一区二区| 欧美日产在线观看| 亚洲伦理在线精品| 成人黄色一级视频| 国产亚洲精品免费| 99久久精品一区二区| 国产日韩欧美精品电影三级在线| 秋霞午夜av一区二区三区| 精品国产伦一区二区三区观看方式| 亚洲午夜国产一区99re久久| 99re这里都是精品| 亚洲777理论| 欧美午夜精品电影| 久久99国内精品| 亚洲国产高清不卡| 成人精品一区二区三区四区| 国产精品无码永久免费888| 国产一区二区三区在线观看精品| 精品欧美乱码久久久久久1区2区| 久久av中文字幕片| 国产亚洲一区二区在线观看| 一本在线高清不卡dvd| 亚洲精品五月天| 日韩欧美你懂的| 92精品国产成人观看免费| 亚洲成人免费视频| 欧美激情在线一区二区| 欧美精品色综合| 美腿丝袜亚洲综合| 精品久久国产老人久久综合| 99精品视频中文字幕| 秋霞影院一区二区| 亚洲精品免费在线观看| 欧美精品一区在线观看| 欧美日韩中文精品| 老司机一区二区| 亚洲最新视频在线观看| 欧美猛男超大videosgay| 粉嫩av一区二区三区在线播放 | 日本韩国一区二区三区| 亚洲精品成人在线| 久久久久久**毛片大全| 92精品国产成人观看免费| 九九视频精品免费| 亚洲成人免费视频| 亚洲日本一区二区| 91精品国产综合久久久久| 精品一二三四在线| 亚洲国产成人porn| 亚洲欧美电影一区二区| 国产欧美一区二区精品久导航| 91精品国产91综合久久蜜臀| 激情五月播播久久久精品| 国产精品久久久99| 欧美日韩一二区| 99re热这里只有精品免费视频| 卡一卡二国产精品 | 91精品国产91久久久久久一区二区 | 欧美mv和日韩mv的网站| 欧美猛男gaygay网站| 欧美影视一区在线| 99re这里只有精品首页| 99免费精品视频| 日本不卡视频在线| 日本网站在线观看一区二区三区 | 91色.com| 99re这里都是精品| 91免费观看在线| 99riav久久精品riav| 91麻豆免费观看| 91麻豆高清视频| 91免费视频大全| 一本大道久久精品懂色aⅴ| 99久久综合国产精品| av午夜精品一区二区三区| 成人av免费观看| 91天堂素人约啪| 色播五月激情综合网| 91福利小视频| 51精品国自产在线| 日韩亚洲欧美高清| 欧美午夜免费电影| 51精品视频一区二区三区| 日韩免费高清视频| 国产亚洲成av人在线观看导航| 久久精品人人做人人爽97| 国产精品乱码人人做人人爱| 中文字幕制服丝袜一区二区三区| 一区二区欧美在线观看| 奇米影视7777精品一区二区| 久久黄色级2电影| 国产精品亚洲午夜一区二区三区 | 99久免费精品视频在线观看| 欧美亚洲另类激情小说| 日韩一卡二卡三卡四卡| 国产无人区一区二区三区| 亚洲四区在线观看| 天堂在线亚洲视频| 国产美女视频一区| 在线亚洲一区观看| 日韩美一区二区三区| 成人欧美一区二区三区小说| 国产欧美日韩激情| 亚洲综合免费观看高清在线观看| 国产精品福利一区二区三区| 午夜精品久久久久久久| 国内成人免费视频| 欧美性色黄大片手机版| 久久日一线二线三线suv| 精品国产亚洲一区二区三区在线观看| 久久精品男人的天堂| 亚洲一区二区视频在线观看| 久久精品国产免费| 99久久久国产精品免费蜜臀| 91精品国产色综合久久| 亚洲欧洲成人av每日更新| 日本成人中文字幕在线视频 | 亚洲午夜电影在线观看| 国产成人高清视频| 成人免费视频国产在线观看| 欧美日韩精品是欧美日韩精品| 久久久久久久久久看片| 亚洲成在人线免费| 春色校园综合激情亚洲| 欧美日韩国产经典色站一区二区三区 | 免费观看30秒视频久久| 色综合久久久久久久久| 国产校园另类小说区| 免费看黄色91| 欧美日韩国产一二三| 国产精品久久二区二区| 国产精品亚洲视频| 日韩欧美成人午夜| 亚洲成年人影院| 99麻豆久久久国产精品免费优播| 久久视频一区二区| 裸体健美xxxx欧美裸体表演| 欧美色男人天堂| 亚洲精品成人精品456| 99久久综合国产精品| 国产亲近乱来精品视频| 激情图区综合网| 日韩午夜在线观看视频| 日本不卡免费在线视频| 欧美精品tushy高清| 亚洲国产wwwccc36天堂| 97超碰欧美中文字幕| 国产精品久久久久久久久久免费看| 狠狠色丁香婷婷综合久久片| 欧美一二三区精品| 蜜臀av亚洲一区中文字幕| 777久久久精品| 亚洲成av人影院| 欧美日韩亚洲丝袜制服| 亚洲一区二区三区美女| 日本道精品一区二区三区| 亚洲桃色在线一区| 91国模大尺度私拍在线视频| 亚洲女女做受ⅹxx高潮| 91免费视频网址| 亚洲国产中文字幕在线视频综合| 在线观看日韩电影| 久久精品水蜜桃av综合天堂| 激情五月婷婷综合网| 久久久久久99精品| 丁香婷婷深情五月亚洲| 国产精品系列在线| 97久久超碰国产精品| 亚洲精品中文字幕在线观看| 色嗨嗨av一区二区三区| 亚洲国产一区二区视频| 在线播放一区二区三区| 免费成人深夜小野草| wwwwww.欧美系列| 国产福利一区在线| 亚洲少妇屁股交4| 在线一区二区观看| 美女视频黄久久| 久久免费看少妇高潮| www.66久久| 亚洲国产色一区| 精品国产乱码久久久久久夜甘婷婷 | 亚洲视频狠狠干| 欧美日韩一区二区三区免费看| 亚洲h动漫在线| 久久综合一区二区| 97久久超碰国产精品电影| 日韩精品电影一区亚洲| 久久视频一区二区| 在线亚洲一区观看| 国产一区在线观看麻豆|