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

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

?? init.c

?? 我用ARM寫的一些東西
?? C
字號:
#include "config.h"

#define Start 		1 
#define StandBy		2
#define LeakDtc		3
#define Error 		4




extern void __irq IRQ_UART1(void);
extern void __irq IRQ_UART0 (void);
extern void __irq IRQ_Timer0 (void);
extern void __irq IRQ_Timer1 (void);
extern void __irq IRQ_I2C(void);
extern void __irq IRQ_Bod(void);
extern void __irq IRQ_Eint3(void);
extern void ad_ch_scal(unsigned char  ch,uint8 scal);
extern void ad_init(void);
extern uint8 MSPI_SendData(uint8 dat);


extern uint16 IntAdDat[6];
extern uint32  SysErrNum;
/* 定義串口模式設置數據結構 */
typedef struct UartMode
{
	uint8 datab;		// 字長度,5/6/7/8可選
	uint8 stopb;		// 停止位,1/2可選
	uint8 parity;		// 奇偶校驗位,0-無校驗,1-奇校驗,2-偶校驗
}UARTMODE;

/*********************************************************************************************************
** 函數名稱 :DelayNS()
** 函數功能 :長軟件延時
** 入口參數 :dly	延時參數,值越大,延時越久
** 出口參數 :無
*********************************************************************************************************
*/
 
 
/*******************************************************************************************
port init
*******************************************************************************************/
void PortInit(void)
{
	PINSEL0=0;
	PINSEL1=0;
	//PINSEL0=(PINSEL0&(~0X03))|0X02;//p0.0 ,p0.1 配制為uart口
	PINSEL0=(PINSEL0&(~0X0F))|0X05;//p0.0 ,p0.1 配制為uart口
	PINSEL0=(PINSEL0&(~(0X0F<<4)))|(0X05<<4);//p0.2 ,p0.3 配制為I2C口
	
	//PINSEL0=(PINSEL0&(~(0X0F<<8)))|(0X01<<8);//p0.4 配制為spi口
	//PINSEL0=(PINSEL0&(~(0X0F<<12)))|(0X01<<12);//p0.6 配制為spi口
	
	PINSEL0=(PINSEL0&(~(0X03<<14)))|(0X02<<14);//p0.7  配制為PWM2
	PINSEL0=(PINSEL0&(~(0X0F<<16)))|(0X05<<16);//p0.8 ,p0.9 配制為uart口
	
	PINSEL0=(PINSEL0&(~(0X03<<20)))|(0X03<<20);//p0.10  配制為Inter Ad1.2
	PINSEL0=(PINSEL0&(~(0X0F<<24)))|(0X0F<<24);//p0.12 ,p0.13 配制為Inter Ad1.3,Ad1.4
 	PINSEL0=(PINSEL0&(~(0X0003<<30)))|(0X0003<<30);//p0.15  配制為Inter Ad1.5
	
	PINSEL1=(PINSEL1&(~(0X03<<10)))|(0X02<<10);//p0.21  配制為Inter Ad1.6
	
	PINSEL1=(PINSEL1&(~(0X01<<20)))|(0X01<<20);//p0.15   ->ad0.5
	
	PINSEL1=(PINSEL1&(~(0X02<<28)))|(0X02<<28);//p0.30   ->ex3 //外部中斷3
	
	
	PINSEL2=(PINSEL2&(~(0X01<<2)))|(0X01<<2);//P1.26~P1.36  配制為 JTAG 調試
	PINSEL2=(PINSEL2&(~(0X01<<3)))|(0X00<<3);//P1.25~P1.16  配制為 GPIO
	
 
	IO0DIR   = IO0DIR | BEEP	;
	IO0DIR   = IO0DIR | PWM2	;
	IO0DIR   = IO0DIR | Var1	;
	IO0DIR   = IO0DIR | Var2	;
	IO0DIR   = IO0DIR | Var3	;
	IO0DIR   = IO0DIR | Var4	;
	IO0DIR   = IO0DIR | Var6	;
	
	IO1DIR   = IO1DIR | VcuumOut1;
	IO0DIR   = IO0DIR | Dx10r2;
	IO0DIR   = IO0DIR | AlarmRel;
	
	IO0DIR   = IO0DIR | AD_DAT;
	

	
	IO1DIR   = IO1DIR | Var5;				//p1
	IO1DIR   = IO1DIR | VcuumOut2;  		//p1
	IO1DIR   = IO1DIR | DxBoard;			//p1
	IO0DIR   = IO0DIR | TmpCtrl;			//p1
	
	IO1DIR   = IO1DIR | HC595_CS;
	IO0DIR   = IO0DIR | HC595_CLK;
	IO0DIR   = IO0DIR | HC595_DAT;
	
	IO1DIR   = IO1DIR | DA_DAT;
	IO1DIR   = IO1DIR | DA_CLK;

	
	
	
	
	
}	

/********************************************************************************************/
void I2cInit(uint32 Fi2c)
{
	if (Fi2c > 400000)
		Fi2c = 400000;
		
   	//PINSEL0 = (PINSEL0 & 0xFFFFFF0F) | 0x50; 			/* 設置I2C控制口有效 				*/
	//PINSEL0 = (PINSEL0 & (~0xF0)) | 0x50; 				// 不影響其它管腳連接
	I2SCLH = (Fpclk/Fi2c + 1) / 2;						/* 設定I2C時鐘 						*/
	I2SCLL = (Fpclk/Fi2c)/2;
	I2CONCLR = 0x2C;
	I2CONSET = 0x40;									/* 使能主I2C 						*/
	
	/* 設置I2C中斷允許 */
	VICIntSelect = 0x00000000;							/* 設置所有通道為IRQ中斷 			*/
	VICVectCntl3 = (0x20 | 0x09);						/* I2C通道分配到IRQ slot0,最高優先級 */
	VICVectAddr3 = (int32)IRQ_I2C;						/* 設置I2C中斷向量 					*/
	VICIntEnable = VICIntEnable|(1 << 9);							/* 使能I2C中斷 						*/
}



/*********************************************************************************************************
** 函數名稱 :UART0_Init()
** 函數功能 :串口初始化,設置工作模式和波特率。
** 入口參數 :baud	波特率
**			  set	模式設置(UARTMODE數據結構)
** 出口參數 :1-初始化成功,  0-初始化失敗
*********************************************************************************************************
*/

void ExInt3Init(void)
{
	
	/* 外部中斷3初始化 */

	
	EXTPOLAR=0x00;
	EXTMODE=0x08;
	VICIntSelect   = 0x00000000;		// 設置所有中斷分配為IRQ中斷
	VICVectCntl0   = 0x20 | 17;			// 分配外部中斷0到向量中斷0
	VICVectAddr0   = (uint32)IRQ_Eint3;	// 設置中斷服務程序地址
	EXTINT         = 0x08;				// 清除EINT0中斷標志
	VICIntEnable   = 1 << 17;			// 使能EINT0中斷
	//EXTWAKE        = 0x01;				// 外部中斷0喚醒芯片
	
}


int8 UART1_Init (uint32 baud, UARTMODE set)
{
	uint32 bak;
	
	/* 參數過濾 */
	if ((baud ==0 ) || (baud > 115200))	return (0);
	if ((set.datab <5) || (set.datab > 8))	return (0);
	if ((set.stopb == 0) || (set.stopb > 2)) 	return (0);
	if (set.parity > 4)	return (0);
	
	/* 設置串口波特率 */
	U1LCR = 0x80;						// DLAB = 1	
	bak   = (Fpclk >> 4) / baud;
	U1DLM = bak >> 8;
	U1DLL = bak & 0xFF;
	
	/* 設置串口模式 */
	bak   = set.datab - 5;				// 設置字長
	if (set.stopb == 2)	bak |= 0x04;	// 判斷是否為2位停止位
	
	if (set.parity != 0)
	{
		set.parity = set.parity - 1;
		bak |= 0x08;
	}
	bak |= set.parity << 4;				// 設置奇偶校驗
	
	U1LCR = bak;
	U1FCR=0x41;//4字觸發
	U1IER=0x01;
	 
	IRQEnable();
	VICIntSelect=0x000000;
	VICVectCntl1=0x20|0x07;  //uart1 最高中斷優先
	VICVectAddr1=(uint32)IRQ_UART1; //設置中斷入口
	VICIntEnable=VICIntEnable|(1<<0x07); //開啟UART1
	
	return (1);
}


int8 UART0_Init (uint32 baud, UARTMODE set)
{
	uint32 bak;
	
	/* 參數過濾 */
	if ((baud ==0 ) || (baud > 115200))	return (0);
	if ((set.datab <5) || (set.datab > 8))	return (0);
	if ((set.stopb == 0) || (set.stopb > 2)) 	return (0);
	if (set.parity > 4)	return (0);
	
	/* 設置串口波特率 */
	U0LCR = 0x80;						// DLAB = 1	
	bak   = (Fpclk >> 4) / baud;
	U0DLM = bak >> 8;
	U0DLL = bak & 0xFF;
	
	/* 設置串口模式 */
	bak   = set.datab - 5;				// 設置字長
	if (set.stopb == 2)	bak |= 0x04;	// 判斷是否為2位停止位
	
	if (set.parity != 0)
	{
		set.parity = set.parity - 1;
		bak |= 0x08;
	}
	bak |= set.parity << 4;				// 設置奇偶校驗
	
	U0LCR = bak;
	U0FCR=0x41;//4字觸發
	U0IER=0x01;
	 
	IRQEnable();
	VICIntSelect=0x000000;
	VICVectCntl6=0x20|0x06;  //uart0 最高中斷優先
	VICVectAddr6=(uint32)IRQ_UART0; //設置中斷入口
	VICIntEnable=VICIntEnable|(1<<0x06); //開啟UART1
	
	return (1);
}


/**********************************************************************************/

void Tm0Init(void)
{

	//PINSEL1 = 0x00000000;			/* 設置管腳連接GPIO							*/

	
	IRQEnable();					/* IRQ中斷使能								*/
	
	/* 定時器0初始化 */
	T0TC   = 0;			/* 定時器設置為0										*/
	T0PR   = 0;			/* 時鐘不分頻											*/
	T0MCR  = 0x03;		/* 設置T0MR0匹配后復位T0TC,并產生中斷標志				*/
	T0MR0  = Fpclk / 60;	/* 0.5秒鐘定時/2;/4=0.25s?		//used div 60									*/
	T0TCR  = 0x01;		/* 啟動定時器											*/
	
	/* 設置定時器0中斷IRQ */
	VICIntSelect = 0x00;				/* 所有中斷通道設置為IRQ中斷			*/
	VICVectCntl2 = 0x20 | 0x04;			/* 設置定時器0中斷通道分配最2優先級	*/
	VICVectAddr2 = (uint32)IRQ_Timer0;	/* 設置中斷服務程序地址					*/
	VICIntEnable =VICIntEnable|( 1 << 0x04);			/* 使能定時器0中斷						*/
}
 
 
void Tm1Init(void)
{

	//PINSEL1 = 0x00000000;			/* 設置管腳連接GPIO							*/

	IRQEnable();					/* IRQ中斷使能								*/
	
	/* 定時器1初始化 */
	T1TC   = 0;			/* 定時器設置為0										*/
	T1PR   = 0;			/* 時鐘不分頻											*/
	T1MCR  = 0x03;		/* 設置T0MR1匹配后復位T1TC,并產生中斷標志				*/
	T1MR0  = Fpclk / 2;	/* 0.5秒鐘定時/2;/40.25s?											*/
	T1TCR  = 0x01;		/* 啟動定時器											*/
	
	/* 設置定時器1中斷IRQ */
	VICIntSelect = 0x00;				/* 所有中斷通道設置為IRQ中斷			*/
	VICVectCntl4 = 0x20 | 0x05;			/* 設置定時器1中斷通道分配最2優先級	*/
	VICVectAddr4 = (uint32)IRQ_Timer1;	/* 設置中斷服務程序地址					*/
	VICIntEnable = VICIntEnable|(1 << 0x05);			/* 使能定時器1中斷						*/
}
 

/**********************************************************************************/
/**********************************************************************************/
/*******       ad初始化                       ********************************************************/
void InterAdInit(void)
{
	/* 進行ADC模塊設置 */
	AD0CR = //(1 << 5)						|	// SEL=8,選擇通道5
			((Fpclk / 3000000 - 1) << 8)	|	// CLKDIV=Fpclk/1000000-1,轉換時鐘為1MHz
			(0 << 16)						|	// BURST=0,軟件控制轉換操作
			(0 << 17)						|	// CLKS=0, 使用11clock轉換
			(1 << 21)						|  	// PDN=1,正常工作模式
			(0 << 22)						|  	// TEST1:0=00,正常工作模式
			//(1 << 24)						|	// START=1,直接啟動ADC轉換
			(0 << 27);						 	// 直接啟動ADC轉換時,此位無效
	      
	/* 進行ADC模塊設置 */
	AD1CR = //(1 << 2)						|	// SEL=8,選擇通道2
			((Fpclk / 3000000 - 1) << 8)	|	// CLKDIV=Fpclk/1000000-1,轉換時鐘為1MHz
			(0 << 16)						|	// BURST=0,軟件控制轉換操作
			(0 << 17)						|	// CLKS=0, 使用11clock轉換
			(1 << 21)						|  	// PDN=1,正常工作模式
			(0 << 22)						|  	// TEST1:0=00,正常工作模式
			//(1 << 24)						|	// START=1,直接啟動ADC轉換
			(0 << 27);						 	// 直接啟動ADC轉換時,此位無效   

}

/**********************************************************************************/
/**********************************************************************************/
/*******     spi                       ********************************************************/
/*
void  MSPI_Init(void)
{  
	//PINSEL0 = (PINSEL0 & 0xFFFF00FF) | 0x00005500;	// 設置管腳連接SPI
	//PINSEL0 = (PINSEL0 & (~(0xFF << 8))) | (0x55 << 8) ;
    SPCCR = 0x16;		            // 設置SPI時鐘分頻
 	SPCR  = (0 << 3) |				// CPHA = 0, 數據在SCK 的第一個時鐘沿采樣
 			(1 << 4) |				// CPOL = 1, SCK 為低有效
 			(1 << 5) |				// MSTR = 1, SPI 處于主模式
 			(0 << 6) |				// LSBF = 0, SPI 數據傳輸MSB (位7)在先
 			(0 << 7);				// SPIE = 0, SPI 中斷被禁止
}*/

/*
void Bod()
{
	IRQEnable();					/* IRQ中斷使能								*/
	
	/* 定時器1初始化 */

/*	VICIntSelect = 0x00;				/* 所有中斷通道設置為IRQ中斷			*/
/*	VICVectCntl0 = 0x20 | 20;			/* 設置定時器1中斷通道分配最2優先級	*/
/*	VICVectAddr0 = (uint32)IRQ_Bod;	/* 設置中斷服務程序地址					*/
/*	VICIntEnable = VICIntEnable|(1 << 20);			/* 使能定時器1中斷*/
/*}*/

void Pwm2Init()
{
    PWMPR    = 0x00;		    // 不分頻,計數頻率為Fpclk
    PWMMCR   = 0x02;			// 設置PWMMR0匹配時復位PWMTC
    PWMPCR   = 0x0400;			// 允許PWM2輸出,單邊PWM
    PWMMR0   = Fpclk / 200;
    //PWMMR1   = PWMMR0 / 2;		// 50%占空比
    PWMMR2   = PWMMR0 *0/4;		// 50%占空比
    PWMLER   = 0x07;			// PWM0和PWM2匹配鎖存
    PWMTCR   = 0x02;            // 復位PWMTC
    PWMTCR   = 0x09;            // 啟動PWM輸出
	 
}


void SysInit(void)
{
	 UARTMODE set;
	 
	 set.datab=8; 
	 set.stopb=1;
	 set.parity=0;
	 
	 PortInit();
	 
	 //WDMOD=0x00;
	 IO0CLR = AD_DAT;
	 IO0CLR = BEEP;			// BEEP	蜂鳴
	 DelayNS(50);
	 IO0SET = BEEP;			// BEEP停止蜂鳴

	 I2cInit(20000);
	 UART1_Init (115200,set);	//串口1初始化
 	 UART0_Init (115200,set);	//串口0初始化

	 Tm0Init();				//定時器0初始化	
	 Tm1Init();				//定時器1初始化	
	 InterAdInit();			//內部AD初始化
	 //Bod();
	 Pwm2Init();
	 

	DelayNS(10);	
	IO0DIR = IO0DIR | AD_DAT; //輸出
	IO0DIR = IO0DIR | AD_DAT; //輸出
	IO0DIR = IO0DIR | AD_DAT; //輸出
	IO0DIR = IO0DIR | AD_DAT; //輸出
	IO0DIR = IO0DIR | AD_DAT; //輸出
	DelayNS(10); 
	Cs7705(0);
	
	
	 ad_init();
	 
	 ad_ch_scal(0,0);

	Cs7705(1);
	 
	ExInt3Init();
	 

	 
	 
	 
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩综合在线免费观看| 精品av久久707| 欧美成人性战久久| 中文字幕一区免费在线观看| 日韩和欧美的一区| 色狠狠一区二区三区香蕉| 久久综合九色欧美综合狠狠| 亚洲国产成人91porn| 国产成人自拍网| 欧美一区欧美二区| 亚洲愉拍自拍另类高清精品| 大桥未久av一区二区三区中文| 日韩一区二区三区在线| 亚洲一区二区视频| hitomi一区二区三区精品| 久久嫩草精品久久久久| 麻豆国产精品777777在线| 欧美人伦禁忌dvd放荡欲情| 日韩美女视频19| 99视频有精品| 1区2区3区国产精品| 成人高清视频在线| 国产精品久久久久久一区二区三区 | 久久女同性恋中文字幕| 男女男精品视频| 日韩一区二区三区四区| 日本亚洲一区二区| 欧美电影一区二区| 午夜久久久影院| 在线播放国产精品二区一二区四区| 夜夜嗨av一区二区三区中文字幕| 91视频com| 亚洲美女免费视频| 在线国产电影不卡| 亚洲综合免费观看高清完整版在线 | 欧美日韩免费观看一区三区| 亚洲宅男天堂在线观看无病毒| 在线观看三级视频欧美| 午夜一区二区三区在线观看| 在线观看91av| 精品制服美女久久| 亚洲国产精品精华液2区45| 成人免费视频免费观看| 专区另类欧美日韩| 欧美猛男超大videosgay| 热久久国产精品| 欧美精品一区男女天堂| 成人精品免费看| 亚洲免费观看视频| 91精品婷婷国产综合久久竹菊| 久久国内精品视频| 国产精品毛片大码女人| 99国产精品国产精品毛片| 亚洲一区中文在线| 日韩欧美美女一区二区三区| 国产一区二区三区黄视频 | 欧美变态tickling挠脚心| 国产主播一区二区三区| 国产精品久久久久婷婷| 欧美日韩国产高清一区二区三区| 久久99精品久久只有精品| 中文字幕一区二区三区在线观看| 在线观看免费亚洲| 精东粉嫩av免费一区二区三区| 国产精品欧美一区喷水| 538在线一区二区精品国产| 国产在线一区观看| 一区二区三区蜜桃| 久久伊人蜜桃av一区二区| 91极品视觉盛宴| 精品一区二区三区在线观看| 17c精品麻豆一区二区免费| 制服.丝袜.亚洲.中文.综合| 国产**成人网毛片九色| 日韩精品电影一区亚洲| 亚洲国产精品av| 91精品国产黑色紧身裤美女| 不卡一卡二卡三乱码免费网站| 免费观看在线综合| 亚洲激情图片qvod| 国产日韩在线不卡| 日韩一区二区免费电影| 欧美亚洲图片小说| 成人一道本在线| 国内精品久久久久影院一蜜桃| 亚洲一区二区三区四区五区黄| 国产亚洲欧美中文| 日韩视频在线你懂得| 欧美探花视频资源| 成人福利视频网站| 国产成人免费高清| 狠狠色综合播放一区二区| 亚洲图片欧美色图| 亚洲激情图片小说视频| 中文字幕一区不卡| 中文字幕av免费专区久久| 26uuu久久天堂性欧美| 91精品国模一区二区三区| 欧美在线不卡一区| 91色porny在线视频| av在线不卡免费看| www.亚洲色图| 不卡电影免费在线播放一区| 国产一区在线精品| 国产精品综合av一区二区国产馆| 蜜臀va亚洲va欧美va天堂| 天涯成人国产亚洲精品一区av| 亚洲精品网站在线观看| 自拍视频在线观看一区二区| 国产精品福利一区| 中文字幕日韩av资源站| 国产精品成人一区二区三区夜夜夜 | 亚洲精品视频自拍| 亚洲欧美aⅴ...| 亚洲精品视频在线观看免费| 亚洲欧美一区二区三区极速播放| 亚洲婷婷在线视频| 亚洲精品乱码久久久久久日本蜜臀| |精品福利一区二区三区| 国产精品国产三级国产普通话蜜臀 | 亚洲精品一区二区三区福利| 久久久久久综合| 中日韩av电影| 亚洲欧美一区二区三区孕妇| 亚洲综合清纯丝袜自拍| 肉色丝袜一区二区| 人妖欧美一区二区| 国产盗摄视频一区二区三区| 成人高清在线视频| 欧美性受xxxx| 日韩一区二区三区在线| 久久综合久久99| 亚洲婷婷综合久久一本伊一区| 亚洲免费av高清| 爽好多水快深点欧美视频| 久久99久久99| 91在线观看地址| 欧美日韩精品三区| 久久奇米777| 亚洲男帅同性gay1069| 日韩精品91亚洲二区在线观看| 久久99精品国产麻豆婷婷| 成人aa视频在线观看| 欧美日韩成人一区二区| 亚洲精品一区二区三区四区高清| 国产精品美女一区二区三区| 亚洲一区二区三区爽爽爽爽爽 | 婷婷综合在线观看| 国产激情偷乱视频一区二区三区| 91免费看片在线观看| 91精品黄色片免费大全| 国产精品视频第一区| 亚洲综合在线第一页| 久久精品国产99| 色综合久久中文字幕综合网| 亚洲国产精品av| 婷婷夜色潮精品综合在线| 成人一区二区三区在线观看| 3atv一区二区三区| 国产精品大尺度| 国产真实乱偷精品视频免| 欧美性感一区二区三区| 欧美国产精品劲爆| 蜜臀av亚洲一区中文字幕| 99久久国产免费看| 欧美精品一区二区三区高清aⅴ | 床上的激情91.| 91麻豆精品国产自产在线观看一区| 久久久久综合网| 日韩二区三区四区| 色久综合一二码| 1区2区3区欧美| 国产精品系列在线播放| 欧美日本不卡视频| 亚洲女爱视频在线| 不卡一卡二卡三乱码免费网站| 欧美成人精品福利| 亚洲v精品v日韩v欧美v专区| 色综合婷婷久久| 久久精品免费在线观看| 欧美aaa在线| 欧美在线视频你懂得| 亚洲欧洲性图库| 成人一区二区三区在线观看| 精品久久久久av影院| 青青草97国产精品免费观看 | 亚洲综合999| 99综合电影在线视频| 国产精品久久久久久久久快鸭 | 人禽交欧美网站| 欧美日韩成人在线一区| 亚洲一区电影777| 欧美亚洲禁片免费| 一区二区三区精品视频在线| 色偷偷88欧美精品久久久| 亚洲情趣在线观看| 在线精品视频免费播放| 亚洲v日本v欧美v久久精品| 欧美三级日韩三级国产三级| 亚洲一区在线播放|