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

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

?? operationio.cpp

?? 用QQ2440板子的SPI功能實(shí)現(xiàn)了DA7631芯片功能的DA轉(zhuǎn)換
?? CPP
字號(hào):
// OperationIo.cpp: implementation of the COperationIo class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "QQ2440DaExt.h"
#include "OperationIo.h"

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


#define CLK400			    	1		// 1:400Mhz, 0:533MHz

#if CLK400
	#define HCLKDIV         	4
	#define PCLKDIV         	8
	#define PRESCALER			24
	#define S2440FCLK			(400000000)
#else		// CLK533
	#define HCLKDIV         	4
	#define PCLKDIV         	8						// P-clock (PCLK) divisor.
	#define S2440FCLK			(532800000)
	#define PRESCALER			32
#endif
						
#define S2440HCLK			(S2440FCLK / HCLKDIV)	// PCLK.=100000000 ,100M
#define S2440PCLK       	(S2440FCLK / PCLKDIV)	// PCLK.=50000000,50M
#define S2440UCLK       	S2440PCLK				//      =50M   
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

COperationIo::COperationIo()
{
	InitGpioReg();
	SPI_InitAddrSPI();
}

COperationIo::~COperationIo()
{

}

BOOL COperationIo::InitGpioReg()
{
	v_pIOPRegs = (volatile IOPreg*)VirtualAlloc(0, sizeof(IOPreg), MEM_RESERVE, PAGE_NOACCESS);
	if (v_pIOPRegs == NULL) 
	{
		DEBUGMSG (1,(TEXT("v_pIOPRegs is not allocated\n\r")));
		return FALSE;
	}
	if (!VirtualCopy((PVOID)v_pIOPRegs, (PVOID)IOP_BASE, sizeof(IOPreg), PAGE_READWRITE|PAGE_NOCACHE)) 
	{
		DEBUGMSG (1,(TEXT("v_pIOPRegs is not mapped\n\r")));
		return FALSE;
	}
	DEBUGMSG (1,(TEXT("v_pIOPRegs is mapped to %x\n\r"), v_pIOPRegs));
	//下面就可以使用v_pIOPRegs變量來操作GPIO了
	//		設(shè)置GPB的控制寄存器為全部Output
	//		v_pIOPRegs->rGPBCON=0x155555;
	//		設(shè)置GPB的數(shù)據(jù)寄存器輸出高電平
	//		v_pIOPRegs->rGPBDAT=0x3FF;
	//		int a|=(1<<x) //X就是某位需要置1的數(shù)字,如第四位置1為: a|=(1<<4) 
	//		int b&=~(1<<x) //把某位置0 
	v_pIOPRegs->rGPFCON &=0xFFFFFF00;	//把GPF1,3,5,7的設(shè)置位清0,則將它們做為輸入腳
	v_pIOPRegs->rGPFUP  = 0xff;     
	
	v_pIOPRegs->rGPGCON &=0xFFFFFCF0;//把GPF3,7 設(shè)為輸入,4設(shè)為輸出
	v_pIOPRegs->rGPGCON |=(1<<8);
	v_pIOPRegs->rGPGUP  = 0xffff;     // 

	return TRUE;
}

BOOL  COperationIo::InitSPI()
{
	if(!v_pIOPRegs || !v_pSSPregs)
	{
		return FALSE;
	}

	unsigned int pclk = S2440PCLK;  // s2440.h define
	// Set I/O is SPI interface
	// Config GPE12,13 is SPIMOSI0,SPICLK0
	v_pIOPRegs->rGPECON &= ~(0x0F << 24); 
	v_pIOPRegs->rGPECON |= (0x0A << 24);	
	// Config GPF1 is Master SPI CS       
		// Baudrate = PCLK/2/(Prescaler value + 1)
    // PCLK = 50Hz
    // Prescaler value = 0x18 = 24
    // Baudrate = 50000000/2/(24 + 1) = 1000000 = 1MHz
    // MCP41010 max clock frequency is 10MHz
	v_pSSPregs->rSPPRE0 = 0x18; //24
    v_pSSPregs->rSPCON0 = 0x1E;//

	v_pIOPRegs->rGPEUP &= ~(0x3<<12); //取消上拉	

	v_pIOPRegs->rGPFCON &= ~(0x03CC);                     
	v_pIOPRegs->rGPFCON |= 0x0144; //EINT1,EINT3,EINT4輸出
	v_pIOPRegs->rGPFUP &= ~(0x1A); //取消上拉		

	SetDAC7631CS(1);// Initialize CS is high  
	
	v_pIOPRegs->rGPGCON &= ~(0x03<<6);   
	v_pIOPRegs->rGPGCON |= (0x01<<6);   
	v_pIOPRegs->rGPGUP &= ~(0x1<<3);

	SetDAC7631LOAD(1);
	SetDAC7631LDAC(0);	

	return TRUE;
}
BOOL COperationIo::SPI_InitAddrSPI(void)
{
	//////////////////////////////////////////////////////////////
	v_pSSPregs = (volatile SSPreg*)VirtualAlloc(0, sizeof(SSPreg), MEM_RESERVE, PAGE_NOACCESS);
	if (v_pSSPregs == NULL) 
	{
		DEBUGMSG (1,(TEXT("v_pSSPregs is not allocated\n\r")));
		return FALSE;
	}
	if (!VirtualCopy((PVOID)v_pSSPregs, (PVOID)SSP_BASE, sizeof(SSPreg), PAGE_READWRITE|PAGE_NOCACHE)) 
	{
		DEBUGMSG (1,(TEXT("v_pSSPregs is not mapped\n\r")));
		return FALSE;
	}
	DEBUGMSG (1,(TEXT("v_pSSPregs is mapped to %x\n\r"), v_pSSPregs));
	return TRUE;
}
void COperationIo::SetDAC7631CS(unsigned char flag)
{
	if(flag==0)
	{
		v_pIOPRegs->rGPFDAT &= ~(0x1 << 1);	// Initialize CS is high  
	}
	else		
	{
		v_pIOPRegs->rGPFDAT |= (0x1 << 1);	// Initialize CS is high  
	}

}

void COperationIo::SetDAC7631LDAC(unsigned char flag)
{
	if(flag==0)
	{
		v_pIOPRegs->rGPGDAT &= ~(0x1 << 3);	
	}
	else		
	{
		v_pIOPRegs->rGPGDAT |= (0x1 << 3);	
	}
}

void COperationIo::SetDAC7631LOAD(unsigned char flag)
{
	if(flag==0)
	{
		v_pIOPRegs->rGPFDAT &= ~(0x1 << 4);	
	}
	else		
	{
		v_pIOPRegs->rGPFDAT |= (0x1 << 4);	
	}
}

void COperationIo::Delay(int loop)
{
	for(int i=0;i<loop;i++)
	{
		for(int j=0;j<10;j++);
	}
}

void COperationIo::SetDAC7631RST(unsigned char flag)
{
	if(flag==0)
		v_pIOPRegs->rGPFDAT &= ~(0x1 << 3);
	else
		v_pIOPRegs->rGPFDAT |= (0x1 << 3);
}

void COperationIo::InitDAC7631RST()
{
	v_pIOPRegs->rGPFDAT &= ~(0x1 << 3);	
	Delay(1);
	v_pIOPRegs->rGPFDAT |= (0x1 << 3);	
}	

void COperationIo::SetDAC7631SPI_MOSI(unsigned char flag)
{
	if(flag==0)
	{
		v_pIOPRegs->rGPEDAT &= ~(0x1<<12);
	}
	else
	{
		v_pIOPRegs->rGPEDAT |= (0x1<<12);
	}
}

void COperationIo::SetDAC7631SPI_CLK(unsigned char flag)
{
	if(flag==0)
	{
		v_pIOPRegs->rGPEDAT &= ~(0x1<<13);
	}
	else
	{
		v_pIOPRegs->rGPEDAT |= (0x1<<13);
	}
}

void COperationIo::SPI_Write(unsigned int ushortValue)
{	
	SetDAC7631SPI_CLK(1);
	SetDAC7631LDAC(0);
	SetDAC7631LOAD(1);//線收一次數(shù)據(jù)
	SetDAC7631CS(0);

	// Check the status of Transfer Ready flag(READY=1) ,and then write data to SPTDAT0
	unsigned char *ptrData = (unsigned char *)&ushortValue;
	while( (v_pSSPregs->rSPSTA0 & 0x01) != 1 );
	v_pSSPregs->rSPTDAT0 = (ptrData[1]); // Write MCP41010 write command 
	// Wait to complete write data
    while( (v_pSSPregs->rSPSTA0 & 0x01) != 1 );
	v_pSSPregs->rSPTDAT0 = (ptrData[0]); // Write MCP41010 write command 
    // Wait to complete write data
    while( (v_pSSPregs->rSPSTA0 & 0x01) != 1 );

	SetDAC7631CS(1);
	SetDAC7631LOAD(0);//
	SetDAC7631LOAD(1);//
	SetDAC7631LDAC(1);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品日韩欧美在线| 一区二区三区小说| 天天做天天摸天天爽国产一区 | 在线观看亚洲成人| 久久综合九色欧美综合狠狠| 亚洲成人免费视频| 欧美系列在线观看| 亚洲激情图片qvod| 色综合中文字幕国产 | 日韩欧美一区二区不卡| 婷婷综合另类小说色区| 欧美老女人第四色| 日本欧美一区二区三区乱码| 欧美精三区欧美精三区| 天堂成人免费av电影一区| 欧美福利视频一区| 精品在线播放午夜| 亚洲国产精品二十页| 成人黄页在线观看| 国产欧美精品日韩区二区麻豆天美| 狠狠狠色丁香婷婷综合激情| 欧美精品一区二区三区四区| 九九精品一区二区| 亚洲欧美中日韩| 精品视频一区二区不卡| 另类人妖一区二区av| 国产日韩在线不卡| 欧美福利视频导航| 成人黄色电影在线| 香蕉久久一区二区不卡无毒影院| 精品国产乱码久久久久久久久| 国产不卡免费视频| 日韩成人免费电影| 亚洲欧美自拍偷拍| 欧美精品一区二区三区久久久| 97精品久久久久中文字幕| 日本女人一区二区三区| 欧美激情在线一区二区三区| 欧美日韩国产一区| 成人妖精视频yjsp地址| 免费xxxx性欧美18vr| 综合色中文字幕| 成人综合在线视频| 精品88久久久久88久久久| 国产在线视视频有精品| 日韩电影一二三区| 亚洲日本在线观看| www.99精品| 99麻豆久久久国产精品免费| 欧美日本一道本| 日本一区二区视频在线观看| 亚洲精品免费播放| 看片的网站亚洲| 91成人在线观看喷潮| 亚洲午夜一区二区| 久久激情五月婷婷| 欧美酷刑日本凌虐凌虐| 久久久精品国产免大香伊 | 亚洲老司机在线| 国产精品1区2区3区在线观看| 欧美久久高跟鞋激| 国产精品久久久一区麻豆最新章节| 免费在线看成人av| 欧美日韩在线三级| 夜夜嗨av一区二区三区网页| 懂色中文一区二区在线播放| 精品久久久久久最新网址| 午夜精彩视频在线观看不卡| 91蜜桃免费观看视频| 久久久久亚洲综合| 久久99精品久久久久婷婷| 日韩视频永久免费| 奇米色777欧美一区二区| 欧美日韩一本到| 亚洲va天堂va国产va久| 欧美色综合天天久久综合精品| ●精品国产综合乱码久久久久| 国产成人免费在线视频| 国产夜色精品一区二区av| 国产精品亚洲第一区在线暖暖韩国| 日韩午夜小视频| 91在线国产福利| 国产精品素人一区二区| 99视频超级精品| 亚洲高清中文字幕| 日韩欧美高清dvd碟片| 经典三级在线一区| 国产精品国产精品国产专区不蜜| 94-欧美-setu| 亚洲国产精品久久艾草纯爱| 91精品国产综合久久福利软件| 日本在线播放一区二区三区| 337p粉嫩大胆色噜噜噜噜亚洲| 国产成人精品一区二区三区四区 | 亚洲成av人片一区二区| 日韩欧美色电影| 成人18视频日本| 性久久久久久久久| 亚洲国产精品ⅴa在线观看| 日本黄色一区二区| 国产一区视频导航| 亚洲电影你懂得| 久久精品男人天堂av| 欧美日韩综合在线免费观看| 91视频国产观看| 五月婷婷欧美视频| 久久精品一区蜜桃臀影院| 欧美日本在线一区| 色综合欧美在线| 国产成人亚洲综合a∨婷婷| 日本在线观看不卡视频| 亚洲另类春色国产| 国产精品萝li| 久久亚洲综合色一区二区三区| 欧美亚洲一区二区三区四区| 国产电影一区在线| 国产在线精品免费av| 日韩国产精品91| 亚洲国产精品一区二区久久恐怖片 | 欧美午夜在线一二页| 成人美女视频在线看| 国产一区二区三区蝌蚪| 久久99热国产| 另类小说视频一区二区| 日产国产高清一区二区三区 | 欧美亚洲综合久久| 91福利资源站| 欧美三级韩国三级日本一级| 91理论电影在线观看| 91亚洲精华国产精华精华液| 99视频一区二区| 99re在线视频这里只有精品| 99r国产精品| 欧美亚洲日本一区| 欧美一区二区观看视频| 精品av久久707| 欧美韩国日本综合| 亚洲免费av观看| 日本免费新一区视频| 国内久久精品视频| aaa国产一区| 制服丝袜亚洲播放| 久久久99精品久久| 亚洲欧洲国产日本综合| 亚洲一区二区视频在线观看| 日日骚欧美日韩| 懂色av中文一区二区三区| 色综合婷婷久久| 欧美一区二区三区啪啪| 久久久三级国产网站| 亚洲卡通动漫在线| 精品在线视频一区| 欧洲生活片亚洲生活在线观看| 91精品国产综合久久精品性色| 欧美精品一区二区三区四区| 一区二区三区久久久| 国产真实乱子伦精品视频| 色综合久久99| 久久精品男人的天堂| 日本vs亚洲vs韩国一区三区二区| 成人毛片老司机大片| 自拍视频在线观看一区二区| 亚洲在线免费播放| 菠萝蜜视频在线观看一区| 日韩你懂的在线播放| 亚洲国产中文字幕在线视频综合| 国产一区二区三区四区在线观看| 精品视频全国免费看| 亚洲欧美中日韩| 99re这里只有精品首页| 久久久精品影视| 国产激情一区二区三区四区| 91精品在线免费观看| 亚洲成人av一区| 欧美无砖砖区免费| 亚洲一区二区在线观看视频| 99久久精品国产一区| 亚洲视频一区二区在线观看| 成人精品视频一区| 中文字幕一区视频| 91在线观看视频| 一区二区三区精品在线| 欧美日韩日日骚| 视频一区二区欧美| 91精品欧美久久久久久动漫| 性做久久久久久久久| 日韩一二三区视频| 极品少妇一区二区| 久久精品视频网| 成人不卡免费av| 亚洲黄色免费网站| 欧美一区三区四区| 国产精品18久久久久久久网站| 久久久久高清精品| 91小视频在线观看| 日日夜夜免费精品| 国产精品污网站| 欧美性一二三区| 国产一区二区伦理| 一区二区三区国产精华|