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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dlgbeep.cpp

?? 周立功WinCE光盤資料
?? CPP
字號:
// DlgBeep.cpp : implementation file
//

#include "stdafx.h"
#include "Magic2410.h"
#include "DlgBeep.h"
#include "gpio.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// DlgBeep dialog
// 定義步進電機各相使用的 GPIO 編號
#define   MOTOA  5
#define   MOTOB  6
#define   MOTOC  7
#define   MOTOD  0

#define	  LED1	 11
#define   LED2   12
#define   LED3   4
#define   LED4   6

#define   WATER  1
#define   HOURSE 2

#define	  DC_MOTORA	0
#define   DC_MOTORB	9

extern HANDLE m_hFileGpio;

DlgBeep::DlgBeep(CWnd* pParent /*=NULL*/)
	: CDialog(DlgBeep::IDD, pParent)
{
	//{{AFX_DATA_INIT(DlgBeep)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	
}


void DlgBeep::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(DlgBeep)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(DlgBeep, CDialog)
	//{{AFX_MSG_MAP(DlgBeep)
	ON_BN_CLICKED(IDC_BEEP_ON, OnBeepOn)
	ON_BN_CLICKED(IDC_BEEP_OFF, OnBeepOff)
	ON_WM_DESTROY()
	ON_BN_CLICKED(IDC_StepRun, OnStepRun)
	ON_BN_CLICKED(IDC_BUTTON_NOT_RUN, OnButtonNotRun)
	ON_BN_CLICKED(IDC_BUTTON_LED1, OnButtonLed1)
	ON_BN_CLICKED(IDC_BUTTON_LED2, OnButtonLed2)
	ON_BN_CLICKED(IDC_BTN_STOP_LED, OnBtnStopLed)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// DlgBeep message handlers

// "蜂鳴器蜂鳴" 按鍵單擊事件代碼
void DlgBeep::OnBeepOn() 
{
	// TODO: Add your control notification handler code here
	BOOL ret;
	BYTE pinnum = 10;	

	// 置 GPH10 為低電平, 蜂鳴器蜂鳴
	ret = ::DeviceIoControl(hFile, IOCTL_GPH_CLR_PIN, &pinnum, 1, NULL, 0, NULL, NULL);
	if (ret != TRUE)
		MessageBox(_T("Set GPH Pin Out Error!"));
}

// "禁止蜂鳴器蜂鳴" 按鍵單擊事件代碼
void DlgBeep::OnBeepOff() 
{
	// TODO: Add your control notification handler code here
	BOOL ret;
	BYTE pinnum = 10;	

	// 置 GPH10 為高電平, 禁止蜂鳴器蜂鳴
	ret = ::DeviceIoControl(hFile, IOCTL_GPH_SET_PIN, &pinnum, 1, NULL, 0, NULL, NULL);
	if (ret != TRUE)
		MessageBox(_T("Set GPH Pin Out Error!"));
}

void DlgBeep::OnDestroy() 
{
	CDialog::OnDestroy();
	
	// TODO: Add your message handler code here
	// "關閉GPIO驅動" 按鍵單擊事件代碼
	DWORD lpExitCode;
	if (hFile != NULL)
		CloseHandle(hFile);
	if(GetExitCodeThread(hThreadLed,&lpExitCode))
		ExitThread(lpExitCode);
	CDialog::OnClose();
}

// "步進電機轉動" 按鍵單擊事件代碼 
void DlgBeep::OnStepRun() 
{
	// TODO: Add your control notification handler code here
	DWORD i;
	if (hFile == INVALID_HANDLE_VALUE)
		return;
	
	// 步進電機運轉
	for (i = 0; i < 30; i++)
	{
		MotoMode1(5); 
	}
}

/********************************************************************
函數名稱: MotoMode2()
功能描述: 步進電機雙四拍程序
		  控制時序為: AB-DA-CD-CD-BC
輸入參數: DWORD dly: 每一步的延時控制, 值越大,延時越久
返 回 值: 無
*********************************************************************/
void DlgBeep::MotoMode2(DWORD dly)
{
	// AB 相有效
	SetPinStatus(MOTOA, 1);
	SetPinStatus(MOTOB, 1);
	Sleep(dly);
	SetPinStatus(MOTOA, 0);
	SetPinStatus(MOTOB, 0);

	// DA 相有效
	SetPinStatus(MOTOD, 1);
	SetPinStatus(MOTOA, 1);
	Sleep(dly);
	SetPinStatus(MOTOD, 0);
	SetPinStatus(MOTOA, 0);

	// CD 相有效
	SetPinStatus(MOTOC, 1);
	SetPinStatus(MOTOD, 1);
	Sleep(dly);
	SetPinStatus(MOTOC, 0);
	SetPinStatus(MOTOD, 0);

		// BC 相有效
	SetPinStatus(MOTOB, 1);
	SetPinStatus(MOTOC, 1);
	Sleep(dly);
	SetPinStatus(MOTOB, 0);
	SetPinStatus(MOTOC, 0);
}

/********************************************************************
函數名稱: SetPinStatus()
功能描述: 設置 GPIO 引腳為高電平或高電平
輸入參數: DWORD pinnum : 引腳編號, 取值為: MOTOA ~ MOTOD
		  BYTE status  : 引腳狀態, 1 -- 輸出高電平, 0 -- 輸出低電平
返 回 值: TRUE: 操作成功    FALSE: 操作失敗  
*********************************************************************/
BOOL DlgBeep::SetPinStatus(DWORD pinnum, BYTE status)
{
	BOOL ret;

	if (status != 0)
		ret = ::DeviceIoControl(hFile, IOCTL_GPC_SET_PIN, &pinnum, 1, NULL, 0, NULL, NULL);
	else
		ret = ::DeviceIoControl(hFile, IOCTL_GPC_CLR_PIN, &pinnum, 1, NULL, 0, NULL, NULL);

	return ret;
}

/********************************************************************
函數名稱: MotoMode()
功能描述: 步進電機雙四拍程序
		  控制時序為: AB-BC-CD-DA-AB
輸入參數: DWORD dly: 每一步的延時控制, 值越大,延時越久
返 回 值: 無
*********************************************************************/
void DlgBeep::MotoMode1(DWORD dly)
{
	// DA 相有效
	SetPinStatus(MOTOD, 1);
	SetPinStatus(MOTOA, 1);
	Sleep(dly);
	SetPinStatus(MOTOD, 0);
	SetPinStatus(MOTOA, 0);

	// AB 相有效
	SetPinStatus(MOTOA, 1);
	SetPinStatus(MOTOB, 1);
	Sleep(dly);
	SetPinStatus(MOTOA, 0);
	SetPinStatus(MOTOB, 0);

	// BC 相有效
	SetPinStatus(MOTOB, 1);
	SetPinStatus(MOTOC, 1);
	Sleep(dly);
	SetPinStatus(MOTOB, 0);
	SetPinStatus(MOTOC, 0);

	// CD 相有效
	SetPinStatus(MOTOC, 1);
	SetPinStatus(MOTOD, 1);
	Sleep(dly);
	SetPinStatus(MOTOC, 0);
	SetPinStatus(MOTOD, 0);

}

void DlgBeep::OnButtonNotRun() 
{
	// TODO: Add your control notification handler code here
	DWORD i;
	if (hFile == INVALID_HANDLE_VALUE)
		return;
	
	// 步進電機運轉
	for (i = 0; i < 30; i++)
	{
		MotoMode2(5); 
	}
}

void DlgBeep::OnButtonLed1() 
{
	// TODO: Add your control notification handler code here
	DWORD dwThreadID;
	LedStaly=WATER;
	if(hThreadLed==NULL)
	{
		ledThread=TRUE;
		hThreadLed=CreateThread(NULL,NULL,LedThread,this,NULL,&dwThreadID);
		if(hThreadLed==NULL)
			MessageBox(_T("LED Thread Create Faile"));
	}

}

BOOL DlgBeep::SetLed(BYTE pinnum, BOOL status,HANDLE hfileled)
{
	BOOL ret;
	switch(pinnum)
	{
	case LED1:
	case LED2:
		if(status)
		ret = ::DeviceIoControl(hfileled, IOCTL_GPE_SET_PIN, &pinnum, 1, NULL, 0, NULL, NULL);
	else
		ret = ::DeviceIoControl(hfileled, IOCTL_GPE_CLR_PIN, &pinnum, 1, NULL, 0, NULL, NULL);
		break;
	case LED3:
	case LED4:
		if(status)
		ret = ::DeviceIoControl(hfileled, IOCTL_GPH_SET_PIN, &pinnum, 1, NULL, 0, NULL, NULL);
	else
		ret = ::DeviceIoControl(hfileled, IOCTL_GPH_CLR_PIN, &pinnum, 1, NULL, 0, NULL, NULL);
		break;
	default:
		ret = FALSE;
		break;
	}
	return ret;
}

DWORD DlgBeep::LedThread(PVOID arg)
{
	DlgBeep *pDlgBeep=(DlgBeep *)arg;
	int dly=100;
	while(pDlgBeep->ledThread)
	{
		if(pDlgBeep->LedStaly==WATER)
		{
			dly=100;
			SetLed(LED1,TRUE,pDlgBeep->hFile );
			Sleep(dly);
			SetLed(LED1,FALSE,pDlgBeep->hFile );
			SetLed(LED2,TRUE,pDlgBeep->hFile );
			Sleep(dly);
			SetLed(LED2,FALSE,pDlgBeep->hFile );
			SetLed(LED3,TRUE,pDlgBeep->hFile );
			Sleep(dly);
			SetLed(LED3,FALSE,pDlgBeep->hFile );
			SetLed(LED4,TRUE,pDlgBeep->hFile );
			Sleep(dly);
			SetLed(LED4,FALSE,pDlgBeep->hFile );
		}
		else if(pDlgBeep->LedStaly == HOURSE)
		{
			dly=200;
			SetLed(LED2,FALSE,pDlgBeep->hFile );
			SetLed(LED4,FALSE,pDlgBeep->hFile );
			SetLed(LED1,TRUE,pDlgBeep->hFile );
			SetLed(LED3,TRUE,pDlgBeep->hFile );
			Sleep(dly);
			SetLed(LED1,FALSE,pDlgBeep->hFile );
			SetLed(LED3,FALSE,pDlgBeep->hFile );
			SetLed(LED2,TRUE,pDlgBeep->hFile );
			SetLed(LED4,TRUE,pDlgBeep->hFile );
			Sleep(dly);
		}
		else
			Sleep(1000);
	}
	return (DWORD)0;
}

void DlgBeep::OnButtonLed2() 
{
	// TODO: Add your control notification handler code here

	DWORD dwThreadID;
	LedStaly=HOURSE;
	if(hThreadLed==NULL)
	{
		ledThread=TRUE;
		hThreadLed=CreateThread(NULL,NULL,LedThread,this,NULL,&dwThreadID);
		if(hThreadLed==NULL)
			MessageBox(_T("LED Thread Create Faile"));
	}
}

void DlgBeep::OnBtnStopLed() 
{
	// TODO: Add your control notification handler code here
	ledThread=FALSE;
	Sleep(100);
	if(hThreadLed)
	{
		CloseHandle(hThreadLed);
		hThreadLed=NULL;
	}
}


void DlgBeep::StopBeepDlgled() 
{
	// TODO: Add your control notification handler code here
	ledThread = FALSE;
	Sleep(100);
	if(hThreadLed)
	{
		CloseHandle(hThreadLed);
		hThreadLed=NULL;
	}
}


DlgBeep *pDlgGPIO;

BOOL DlgBeep::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	BOOL ret;
	BYTE pinnum = 10;
	BYTE DC_motora=DC_MOTORA;
	BYTE DC_motorb=DC_MOTORB;

	// A,B,C,D 各相對就 GPIO 掩碼
	DWORD pinmask = (1 << MOTOA) + (1 << MOTOB) + (1 << MOTOC) + (1 << MOTOD); 

	// 打開 GPIO 驅動
	hFile = CreateFile(TEXT("PIO1:"), GENERIC_READ | GENERIC_WRITE, 0, 
					   NULL, OPEN_EXISTING, 0, 0);
	
	if (hFile == INVALID_HANDLE_VALUE)
	{
		MessageBox(_T("Cannot Open PIO1!"));
		return FALSE; 
	}
	m_hFileGpio=hFile;

	// 設置 GPH10 為輸出口
	ret = ::DeviceIoControl(hFile, IOCTL_GPH_SET_PIN_OUT, &pinnum, 1, NULL, 0, NULL, NULL);
	if (ret != TRUE)
		MessageBox(_T("Set GPH Pin Out Error!"));

	// 設置 GPC0, GPC5, GPC6, GPC7 為輸出口
	ret = ::DeviceIoControl(hFile, IOCTL_GPC_SET_MULTI_PIN_OUT, &pinmask, 1, NULL, 0, NULL, NULL);
	if (ret != TRUE)
		MessageBox(_T("Set GPIO Pin Out failed!"));

	// 設置 GPB0 為輸出口
	ret = ::DeviceIoControl(hFile, IOCTL_GPB_SET_PIN_OUT, &DC_motora, 1, NULL, 0, NULL, NULL);
	if (ret != TRUE)
		MessageBox(_T("Set GPB Pin Out Error!"));

	// 設置 GPH9 為輸出口
	ret = ::DeviceIoControl(hFile, IOCTL_GPH_SET_PIN_OUT, &DC_motorb, 1, NULL, 0, NULL, NULL);
	if (ret != TRUE)
		MessageBox(_T("Set GPH Pin Out Error!"));

	// 設置 GPE11 為輸出口
	pinnum=LED1;
	ret = ::DeviceIoControl(hFile, IOCTL_GPE_SET_PIN_OUT, &pinnum, 1, NULL, 0, NULL, NULL);
	if (ret != TRUE)
		MessageBox(_T("Set GPE Pin Out Error!"));

	// 設置 GPE12 為輸出口
	pinnum=LED2;
	ret = ::DeviceIoControl(hFile, IOCTL_GPE_SET_PIN_OUT, &pinnum, 1, NULL, 0, NULL, NULL);
	if (ret != TRUE)
		MessageBox(_T("Set GPE12 Pin Out Error!"));

	// 設置 GPH4 為輸出口
	pinnum=LED3;
	ret = ::DeviceIoControl(hFile, IOCTL_GPH_SET_PIN_OUT, &pinnum, 1, NULL, 0, NULL, NULL);
	if (ret != TRUE)
		MessageBox(_T("Set GPH4 Pin Out Error!"));

	// 設置 GPH6 為輸出口
	pinnum=LED4;
	ret = ::DeviceIoControl(hFile, IOCTL_GPH_SET_PIN_OUT, &pinnum, 1, NULL, 0, NULL, NULL);
	if (ret != TRUE)
		MessageBox(_T("Set GPH6 Pin Out Error!"));

	// 置 GPH9 為低電平
	ret = ::DeviceIoControl(hFile, IOCTL_GPH_CLR_PIN, &DC_motorb, 1, 
							NULL, NULL, NULL, NULL);

	pDlgGPIO = this;


	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本欧美大码aⅴ在线播放| 91毛片在线观看| 99综合影院在线| 91精品国产一区二区三区香蕉| 欧美经典三级视频一区二区三区| 一区二区日韩av| 成人综合在线观看| 精品少妇一区二区| 亚洲成a人v欧美综合天堂下载 | 精品国产凹凸成av人导航| 日韩一区欧美一区| 国产成人在线视频网站| 日韩欧美国产系列| 午夜亚洲福利老司机| 一本色道久久综合亚洲aⅴ蜜桃| 一区二区欧美国产| 成人永久免费视频| ww久久中文字幕| 老司机免费视频一区二区三区| 欧美视频一区二| 亚洲精品国产一区二区精华液| 国产剧情在线观看一区二区| 欧美一区二区三区在线观看视频| 亚洲综合免费观看高清在线观看| 成人黄色软件下载| 欧美韩日一区二区三区四区| 国产一区二区三区精品视频| 精品美女在线播放| 看片网站欧美日韩| 欧美成人a在线| 男女激情视频一区| 日韩美女天天操| 麻豆91小视频| 精品少妇一区二区三区日产乱码 | 亚洲精品欧美激情| 91在线码无精品| 亚洲区小说区图片区qvod| 成人亚洲一区二区一| 国产精品嫩草影院av蜜臀| 成人黄色在线看| 亚洲欧美国产高清| 欧美日韩一区二区三区不卡| 亚洲午夜久久久| 91精品在线麻豆| 久久99精品久久久久久久久久久久| 日韩欧美一区二区视频| 久久精品国产一区二区| 久久综合久久综合久久| 国产成人免费网站| 国产精品久久久久影院老司| www.亚洲激情.com| 亚洲一区免费观看| 国产精品污www在线观看| 97精品电影院| 丝袜美腿成人在线| 久久久久久久久蜜桃| 成人高清视频免费观看| 亚洲一区日韩精品中文字幕| 欧美日韩大陆一区二区| 狠狠色丁香婷综合久久| 中文字幕一区二区三区av| 欧美丝袜丝交足nylons| 久久99精品久久久久久国产越南| 欧美激情一区二区三区| 91女人视频在线观看| 日韩一区精品视频| 欧美国产日韩精品免费观看| 在线欧美日韩精品| 韩国成人精品a∨在线观看| 综合婷婷亚洲小说| 欧美大片拔萝卜| 91麻豆精东视频| 激情亚洲综合在线| 亚洲尤物视频在线| 精品处破学生在线二十三| 97se亚洲国产综合自在线| 免费不卡在线观看| 一区二区三国产精华液| 久久久久久99精品| 欧美疯狂做受xxxx富婆| 成人永久免费视频| 蜜臀久久99精品久久久久宅男| 国产精品久久福利| 精品日韩一区二区三区| 色88888久久久久久影院野外| 久久成人久久鬼色| 亚洲午夜在线视频| 中文字幕一区二区三区在线播放 | 欧美一区午夜精品| 色综合中文综合网| 天天av天天翘天天综合网| 欧美国产1区2区| 欧美一级欧美一级在线播放| 91久久精品国产91性色tv| 国产不卡在线视频| 久久国产福利国产秒拍| 午夜精品久久久久久久| 亚洲欧洲一区二区在线播放| 久久综合久色欧美综合狠狠| 欧美一区二区在线看| 欧美日韩在线播放三区四区| 99视频一区二区| 成人午夜又粗又硬又大| 经典一区二区三区| 免费成人在线网站| 天天综合网 天天综合色| 亚洲精品视频在线观看网站| 中文一区一区三区高中清不卡| 欧美精品一区二区三区一线天视频 | 欧美日韩中文一区| 在线观看国产日韩| 欧美性欧美巨大黑白大战| 91免费小视频| 日本久久一区二区三区| 色综合天天在线| 色综合中文字幕国产| 一本色道久久综合精品竹菊| 91片在线免费观看| 在线观看www91| 欧美在线视频日韩| 欧美午夜电影在线播放| 欧美日韩国产高清一区二区| 欧美性欧美巨大黑白大战| 欧美视频第二页| 91麻豆精品国产91久久久久 | 99精品视频一区二区| 99久久精品免费观看| 91视视频在线观看入口直接观看www | 久久综合国产精品| 国产欧美日韩不卡免费| 亚洲欧洲国产专区| 亚洲第一搞黄网站| 久久精品国产999大香线蕉| 精品一区二区在线视频| 国产成人免费视频网站| 色先锋aa成人| 91精品国产综合久久福利| 精品99一区二区| 亚洲色图一区二区三区| 性感美女久久精品| 久久av中文字幕片| 高清国产午夜精品久久久久久| 99久久伊人网影院| 欧美日韩亚洲综合一区二区三区| 91精品中文字幕一区二区三区| 久久久久久久久久久电影| 日韩久久一区二区| 日本亚洲免费观看| 成人激情免费电影网址| 欧美精选在线播放| 国产日韩影视精品| 亚洲国产日韩a在线播放| 蜜臂av日日欢夜夜爽一区| 国产·精品毛片| 欧美日韩五月天| 国产欧美日本一区二区三区| 午夜在线电影亚洲一区| 国产成人精品免费视频网站| 欧美日韩视频在线第一区| 国产日韩欧美精品一区| 亚洲自拍偷拍av| 亚洲欧美日韩一区二区三区在线观看| 日韩一区二区在线看| 国产三级精品三级在线专区| 亚洲精品国久久99热| 国产在线播放一区二区三区| 欧美午夜宅男影院| 欧美激情在线一区二区| 日韩精品一二区| 欧美在线视频不卡| 中文av一区二区| 国产在线日韩欧美| 欧美一区二区三区电影| 一区二区三区四区精品在线视频| 国产在线播放一区三区四| 欧美一区二区三区视频| 一区二区日韩电影| 99r国产精品| 国产日韩欧美一区二区三区乱码| 天天亚洲美女在线视频| 日本乱码高清不卡字幕| 中文字幕一区二区三区精华液| 国产制服丝袜一区| 精品久久五月天| 日韩电影免费在线| 欧美日韩高清一区二区不卡| 亚洲精品视频自拍| 91免费版pro下载短视频| 国产精品欧美精品| 成人精品视频.| 欧美韩国日本综合| 国产激情一区二区三区桃花岛亚洲| 欧美一级片在线看| 免费成人在线播放| 欧美一区二区观看视频| 轻轻草成人在线| 欧美一区二区三级| 麻豆传媒一区二区三区| 日韩欧美激情在线| 精品一区二区av|