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

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

?? ads1241.c

?? MSP430單片機C語言應用程序設計實例精講(秦龍編著)
?? C
字號:
#include <msp430x14x.h>
#include "ADS1241.h"


int ADS1241Init(void)
{
    // 定義初始狀態
    P3OUT &= ~(ADS1241_SCLK  | ADS1241_DIN);
    P3OUT |=  (ADS1241_CS); 
    // 方向
    P3DIR = (ADS1241_SCLK | ADS1241_CS | ADS1241_DOUT);
    //設置DRDY管腳
    P1SEL &= ~(ADS1241_DRDY);
    P1DIR &= ~(ADS1241_DRDY);

    return ADS1241_NO_ERROR;
}

int ADS1241WaitForDataReady(int Timeout)
{
	if (Timeout > 0)
	{
		// 判斷ADS1241的管腳輸出是否是高電平
		while (!(P1IN & ADS1241_DRDY) && (Timeout-- >= 0)) ;
		// 判斷ADS1241的管腳輸出是否是低電平
		while ( (P1IN & ADS1241_DRDY) && (Timeout-- >= 0)) ;
		if (Timeout < 0)
			return ADS1241_TIMEOUT_WARNING;
	}
	else
	{
		// 判斷ADS1241的管腳輸出是否是高電平
		while (!(P1IN & ADS1241_DRDY)) ;
		// 判斷ADS1241的管腳輸出是否是低電平
		while ( (P1IN & ADS1241_DRDY)) ;
	}
	return ADS1241_NO_ERROR;
}

void ADS1241AssertCS( int fAssert)
{
	//分別設置高電平或者低電平
	if (fAssert)
		P3OUT &= ~ADS1241_CS;
	else
		P3OUT |=  ADS1241_CS;
}
void ADS1241SendByte(int Byte)
{
    int i,j;
    for (i=0; i<8; i++)
	{
        // 輸出數據
        if (Byte & 0x80)
            P3OUT |=  ADS1241_DIN;
        else
            P3OUT &= ~ADS1241_DIN; 

        // 時鐘管腳輸出高電平
        P3OUT |=  ADS1241_SCLK;
        //延遲一點時間
        for(j = 20;j > 0;j--) ;
        // 時鐘管腳輸出低電平
        P3OUT &= ~ADS1241_SCLK;
        //延遲一點時間
        for(j = 20;j > 0;j--) ;
        Byte <<= 1; 
	}
}

unsigned char ADS1241ReceiveByte(void)
{
    unsigned char Result = 0;
    int i,j;
    for (i=0; i<8; i++)
	{
        Result <<= 1; 
        // 時鐘管腳輸出高電平
        P3OUT |=  ADS1241_SCLK;
        //延遲一點時間
        for(j = 20;j > 0;j--) ;

        //讀數據
        if (P3IN & ADS1241_DOUT) Result |=  1;
        // 時鐘管腳輸出低電平
        P3OUT &= ~ADS1241_SCLK;
        //延遲一點時間
        for(j = 20;j > 0;j--) ;
	}
    return Result;
}
/*
******************************************************************************
*/
long ADS1241ReadData(int fWaitForDataReady)
{
	int j;
	long Data;
	// if requested, synchronize to /DRDY
	if (fWaitForDataReady)
		ADS1241WaitForDataReady(0);

	// 選通ADS1241
	ADS1241AssertCS(1);

	// 發送命令字節
	ADS1241SendByte(ADS1241_CMD_RDATA);

	//延遲一點時間
	for(j = 50;j > 0;j--) ;

	// 得到轉換結果
	Data = ADS1241ReceiveByte();
	Data = (Data << 8) | ADS1241ReceiveByte();
	Data = (Data << 8) | ADS1241ReceiveByte();

	// 符號擴展
	if (Data & 0x800000)
		Data |= 0xff000000;

	// 不選通ADS1241
	ADS1241AssertCS(0);
	return Data;
}

int ADS1241ReadRegister(int StartAddress, int NumRegs, unsigned * pData)
{
	int i;

	// 選通ADS1241
	ADS1241AssertCS(1);

	// 發送命令
	ADS1241SendByte(ADS1241_CMD_RREG | (StartAddress & 0x0f));

	// 發送參數
	ADS1241SendByte(NumRegs-1);

	//延遲一點時間
	for(i = 50;i > 0;i--) ;

	// 讀取數據
	for (i=0; i< NumRegs; i++)
	{
		*pData++ = ADS1241ReceiveByte();
	}

	// 不選通ADS1241
	ADS1241AssertCS(0);
	return ADS1241_NO_ERROR;
}

int ADS1241WriteRegister(int StartAddress, int NumRegs, unsigned int *pData)
{
	int i;

	// 選通ADS1241
	ADS1241AssertCS(1);

	// 發送命令
	ADS1241SendByte(ADS1241_CMD_WREG | (StartAddress & 0x0f));

	// 發送參數
	ADS1241SendByte(NumRegs-1);

	//延遲一點時間
	for(i = 50;i > 0;i--) ;

	// 發送數據
	for (i=0; i< NumRegs; i++)
	{
		ADS1241SendByte(*pData++);
	}

	// 不選通ADS1241
	ADS1241AssertCS(0);
	return ADS1241_NO_ERROR;
}

int ADS1241SendResetCommand(void)
{
int i;
	// 選通ADS1241
	ADS1241AssertCS(1);

	// 發送命令
	ADS1241SendByte(ADS1241_CMD_RESET);

	// 不選通ADS1241
	ADS1241AssertCS(0);

	//延遲一點時間
	for(i = 50;i > 0;i--) ;

	return ADS1241_NO_ERROR;
}

int ADS1241SetChannel(int MuxCode)
{
unsigned int nTemp;
nTemp = MuxCode;
	ADS1241WriteRegister(ADS1241_MUX_REGISTER, 0x01, &nTemp);
	return ADS1241_NO_ERROR;
}

int ADS1241SetGain(int GainCode)
{
	unsigned Temp;

	// 讀出增益
	ADS1241ReadRegister(ADS1241_SETUP_REGISTER, 0x01, &Temp);

	// 增益處理
	Temp &= ~0x07;
	Temp |= GainCode & 0x07;

	// 寫入寫的增益
	ADS1241WriteRegister(ADS1241_SETUP_REGISTER, 0x01, &Temp);
	return ADS1241_NO_ERROR;
}
void Init_CLK(void)
{
    unsigned int i;
    BCSCTL1 = 0X00;	//將寄存器的內容清零
					//XT2震蕩器開啟
					//LFTX1工作在低頻模式
					//ACLK的分頻因子為1
					
    do 
    {
		// 清除OSCFault標志
	    IFG1 &= ~OFIFG;    
	    for (i = 0x20; i > 0; i--);                
    }
    while ((IFG1 & OFIFG) == OFIFG);// 如果OSCFault =1   
					
	//將寄存器的內容清零
    BCSCTL2 = 0X00;		
	//MCLK的時鐘源為TX2CLK,分頻因子為1
    BCSCTL2 += SELM1;	
	//SMCLK的時鐘源為TX2CLK,分頻因子為1
    BCSCTL2 += SELS;	
}
void main(void)
{
        int i;
	char ACRVal;
	unsigned int nTemp;
	long nRes;

	// 初始化時鐘
	Init_CLK();
	// ADS1241的初始化
	ADS1241Init();
	// 復位ADS1241	
	ADS1241SendResetCommand();
			
	// 設置增益和復用方式
	ADS1241SetGain(ADS1241_GAIN_1);
	ADS1241SetChannel(0x05 | ADS1241_MUXN_AINCOM);
	
	// 速率 = 15Hz (2.4576MHz, SPEED = 0)
	ACRVal = 0;
	nTemp = 0;
	ADS1241WriteRegister(ADS1241_ACR_REGISTER, 1, &nTemp);
	
	// 內部自校正
	ADS1241AssertCS(1);
	ADS1241SendByte(ADS1241_CMD_SELFCAL);
	ADS1241AssertCS(0);

	for (i=0; i<4; i++)
		ADS1241WaitForDataReady(0);
	
	// 讀取數據
	nRes = ADS1241ReadData(1);
	
	return ;
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美男男青年gay1069videost| 国产高清不卡一区二区| 国产精品三级电影| 久久九九久久九九| 欧美国产日韩一二三区| 国产精品美女久久久久久久网站| 中文字幕av一区 二区| 国产精品不卡在线| 一区二区三区欧美视频| 午夜欧美2019年伦理| 日韩高清不卡在线| 国内精品国产三级国产a久久| 国内精品第一页| 成人动漫av在线| 在线观看亚洲专区| 欧美一区二区观看视频| 精品国产免费视频| 中文字幕一区日韩精品欧美| 亚洲欧美经典视频| 亚洲国产成人高清精品| 精品系列免费在线观看| 成人午夜伦理影院| 欧美日韩不卡一区二区| 欧美精品一区二区三区四区| 中文字幕欧美国产| 日韩在线一区二区| 丁香激情综合国产| 欧美亚洲动漫另类| 精品国产精品网麻豆系列| 亚洲色图丝袜美腿| 免费高清不卡av| 成人高清在线视频| 91精品国产综合久久精品性色| 久久久久久久综合| 亚洲国产精品一区二区久久| 国产精品88888| 欧美午夜精品一区| 欧美国产一区二区在线观看| 亚洲成人av电影在线| 国产精品夜夜嗨| 欧美一级欧美三级在线观看| 亚洲欧洲日韩在线| 国产一区视频导航| 欧美老肥妇做.爰bbww视频| 26uuu亚洲综合色欧美| 一区二区三区国产精华| 国产成人三级在线观看| 欧美精品黑人性xxxx| 亚洲婷婷综合久久一本伊一区| 毛片一区二区三区| 欧美日韩在线直播| 中文字幕亚洲在| 亚洲丰满少妇videoshd| 亚洲影视资源网| 六月丁香婷婷色狠狠久久| 91年精品国产| 久久久亚洲午夜电影| 美女国产一区二区三区| 在线观看亚洲精品视频| 日韩一区中文字幕| 国产成人日日夜夜| 久久品道一品道久久精品| 日产精品久久久久久久性色| 欧美色手机在线观看| 一区二区成人在线视频| 色婷婷精品久久二区二区蜜臂av| 国产亚洲综合色| 国产一区91精品张津瑜| 久久亚洲捆绑美女| 国产在线视频一区二区三区| 日韩久久久精品| 久草精品在线观看| 久久综合九色综合欧美亚洲| 九一久久久久久| 精品国产凹凸成av人网站| 美女在线视频一区| 欧美一区二区在线免费播放| 日本中文字幕一区二区视频| 日韩视频在线永久播放| 精品在线播放免费| 久久久久久久久伊人| 岛国一区二区三区| 亚洲另类在线一区| 欧美日韩免费不卡视频一区二区三区| 一区二区免费看| 欧美日韩午夜在线视频| 日本免费新一区视频| 精品伦理精品一区| 福利一区二区在线观看| 亚洲人成7777| 欧美丰满少妇xxxxx高潮对白| 视频一区二区三区入口| 欧美精品一区二区精品网| 国产a级毛片一区| 亚洲精品乱码久久久久久久久 | 免费观看91视频大全| 日韩一区二区三区观看| 国产精品影音先锋| 亚洲一区自拍偷拍| 日韩欧美不卡在线观看视频| 成人一区二区三区中文字幕| 亚洲主播在线播放| 亚洲精品一区二区三区蜜桃下载 | 丝袜脚交一区二区| 欧美成人福利视频| 99久久99久久精品国产片果冻| 亚洲国产裸拍裸体视频在线观看乱了 | 91美女福利视频| 午夜av一区二区| 欧美激情在线一区二区| 欧美日韩aaa| 成人av在线播放网址| 亚洲国产日产av| 国产精品久久久久三级| 日韩一级片网站| 91小视频在线免费看| 精品一区二区av| 亚洲国产一区视频| 日本一区二区免费在线观看视频| 日本丶国产丶欧美色综合| 国产一区二区三区久久悠悠色av| 一区二区三区波多野结衣在线观看| 亚洲精品在线观看视频| 欧美性猛交xxxxxx富婆| 成人夜色视频网站在线观看| 久草在线在线精品观看| 三级一区在线视频先锋 | 久久久不卡网国产精品二区| 欧美午夜影院一区| av不卡一区二区三区| 国产成人亚洲精品狼色在线 | 成人国产视频在线观看| 久久精品99国产精品| 亚洲成人先锋电影| 亚洲欧美偷拍卡通变态| 中文字幕乱码一区二区免费| 久久无码av三级| 精品国产伦一区二区三区观看方式| 欧美色网站导航| 在线观看一区二区视频| 一本一本久久a久久精品综合麻豆| 狠狠色丁香婷婷综合| 人人爽香蕉精品| 日韩福利视频导航| 秋霞成人午夜伦在线观看| 亚洲福利一区二区三区| 亚洲成人1区2区| 秋霞影院一区二区| 精久久久久久久久久久| 热久久免费视频| 久久99国产精品成人| 国产在线一区观看| 成人午夜电影小说| eeuss鲁片一区二区三区| av在线免费不卡| 91久久精品午夜一区二区| 在线观看中文字幕不卡| 欧美人与禽zozo性伦| 欧美一区二区三区四区五区| 7777精品伊人久久久大香线蕉 | 91免费看视频| 欧美综合在线视频| 欧美一级高清片在线观看| 日韩天堂在线观看| 久久只精品国产| 国产精品毛片久久久久久久| 一区二区中文视频| 亚洲精选视频免费看| 午夜电影网一区| 国产乱人伦精品一区二区在线观看 | 日本视频一区二区| 久久爱www久久做| 国产成人自拍高清视频在线免费播放| 福利一区福利二区| 欧美性感一区二区三区| 日韩欧美国产一区在线观看| 国产精品婷婷午夜在线观看| 亚洲乱码国产乱码精品精小说 | 国产91色综合久久免费分享| 99精品一区二区| 日韩网站在线看片你懂的| 国产精品久久影院| 日韩av电影一区| 91小宝寻花一区二区三区| 欧美三级电影在线观看| 久久久久久久久久电影| 亚洲一区二区五区| 国产一区二区三区精品视频| 色视频成人在线观看免| 欧美一级二级在线观看| 最新成人av在线| 国内成+人亚洲+欧美+综合在线 | 美女视频黄 久久| a级高清视频欧美日韩| 日韩写真欧美这视频| 亚洲婷婷综合色高清在线| 精品一区二区三区在线播放| 色偷偷一区二区三区| 久久九九久久九九| 日本欧美加勒比视频|