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

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

?? timer.c

?? 基于NXP2200平臺的OS移植模板
?? C
字號:
/** @file	Timer.c
* @brief	LPC2200 Timer n驅(qū)動程序
* @Notice	采用中斷方式, 如有問題請聯(lián)系作者
* @Author	Mars.zhu@hotmail.com 2007-7-6 17:03
* @Modify
*/
#include "option.h"
#include "Timer.h"

#define	PR		99
#define	PWM_PR	0

/** @func TnMR_Init()
* @brief 定時器n初始化
* @param	Tn		 定時器選擇
*			ms		 定時時間
* @Retval	void
*/
void
TnMR_Init(uint8 Tn, uint16 ms)
{
	uint32	mr;

	/** 匹配寄存器*/
	mr = Fpclk / (PR+1) / 1000 * ms;

	switch (Tn) {
	case 0:
		T0PR	= PR;
		T0MCR	= 0x03;
		T0MR0	= mr;
		T0TCR	= 0x03;
		T0TCR	= 0x01;
		VicEnable(TIMER0_NO);
		break;
	case 1:
		T1PR	= PR;
		T1MCR	= 0x03;
		T1MR0	= mr;
		T1TCR	= 0x03;
		T1TCR	= 0x01;
		VicEnable(TIMER1_NO);
		break;
	default:
		break;
	}
}

/** @func TnCAP_Init()
* @brief 定時器n捕獲模式初始化
* @param	Tn			定時器選擇
*			CAP_MODE	捕獲方式,按位操作方式
*				bit0:1--CAP上跳沿捕獲
*				bit1:1--CAP下降沿捕獲
*			CAPn		捕獲通道選擇,0~3
* @Retval	void
*/
void
TnCAP_Init(uint8 Tn, uint8 CAP_MODE, uint8 CAPn)
{
	switch (Tn) {
	case 0:
		/** Set TnCAP0 Pin*/
		switch (CAPn) {
		case 0:
			PINSEL0 = (PINSEL0&P002_CLR_BITS) | P002_FOR_CAP0_0;
			break;
		case 1:
			PINSEL0 = (PINSEL0&P004_CLR_BITS) | P004_FOR_CAP0_1;
			break;
		case 2:
			PINSEL0 = (PINSEL0&P006_CLR_BITS) | P006_FOR_CAP0_2;
			break;
		case 3:
			PINSEL1 = (PINSEL1&P029_CLR_BITS) | P029_FOR_CAP0_3;
			break;
		default:
			break;
		}

		/** Clear Int flag*/
		T0IR	= T0IR | (1<<(CAPn+4));

		/** 設(shè)置捕獲控制寄存器*/
		T0CCR	= (T0CCR & (~(3<<(CAPn*3)))) | (CAP_MODE<<(CAPn*3)) | (1<<(CAPn*3+2));
		VicEnable(TIMER0_NO);
		T0TCR	= 0x03;
		T0TCR	= 0x01;
		break;
	case 1:
		/** Set TnCAP0 Pin*/
		switch (CAPn) {
		case 0:
			PINSEL0 = (PINSEL0&P010_CLR_BITS) | P010_FOR_CAP1_0;
			break;
		case 1:
			PINSEL0 = (PINSEL0&P011_CLR_BITS) | P011_FOR_CAP1_1;
			break;
		case 2:
			PINSEL1 = (PINSEL1&P017_CLR_BITS) | P017_FOR_CAP1_2;
			break;
		case 3:
			PINSEL1 = (PINSEL1&P018_CLR_BITS) | P018_FOR_CAP1_3;
			break;
		default:
			break;
		}

		/** Clear Int flag*/
		T1IR	= T1IR | (1<<(CAPn+4));

		/** 設(shè)置捕獲控制寄存器*/
		T1CCR	= (T1CCR & (~(3<<(CAPn*3)))) | (CAP_MODE<<(CAPn*3)) | (1<<(CAPn*3+2));
		VicEnable(TIMER1_NO);
		T1TCR	= 0x03;
		T1TCR	= 0x01;
		break;
	default:
		break;
	}
}


/** @func TnMAT_Init()
* @brief 定時器n匹配模式初始化
* @param	Tn			定時器選擇
*			time		匹配時間,該值會直接寫入到匹配寄存器中
*			T_MODE		匹配控制模式
*				0: 匹配時,定時器復(fù)位
*				1: 匹配時,定時器停止
*			EXT_MODE	匹配時,外部輸出控制
*				0: 不執(zhí)行任何動作
*				1: 外部匹配輸出0
*				2: 外部匹配輸出1
*				3: 外部匹配輸出翻轉(zhuǎn)
*			MATn		匹配通道選擇,0~3
* @Retval	void
*/
void
TnMAT_Init(uint8 Tn, uint32 time, uint8 T_MODE, uint8 EXT_MODE, uint8 MATn)
{
	switch (Tn) {
	case 0:
		if (EXT_MODE) {
			switch (MATn) {
			case 0:
				PINSEL0 = (PINSEL0&P003_CLR_BITS) | P003_FOR_MAT0_0;
				break;
			case 1:
				PINSEL0 = (PINSEL0&P005_CLR_BITS) | P005_FOR_MAT0_1;
				break;
			case 2:
				PINSEL1 = (PINSEL1&P016_CLR_BITS) | P016_FOR_MAT0_2;
				break;
			case 3:
				PINSEL1 = (PINSEL1&P029_CLR_BITS) | P029_FOR_MAT0_3;
				break;
			default:
				break;
			}
		}
		T0IR = T0IR | (1<<MATn);
		T0PR = PR;

		/** 匹配寄存器*/
		*(uint32*)((&T0MR0)+MATn) = time;
		/** 匹配控制寄存器*/
		T0MCR = (T0MCR & (~(7<<(MATn*3)))) | (1<<(MATn*3+1+T_MODE)) | (1<<(MATn*3));
		/** 外部匹配寄存器*/
		T0EMR = (T0EMR & (~(3<<(MATn*2+4)))) | (EXT_MODE<<(MATn*2+4));
		VicEnable(TIMER0_NO);
		T0TCR = 0x03;
		T0TCR = 0x01;
		break;
	case 1:
		if (EXT_MODE) {
			switch (MATn) {
			case 0:
				PINSEL0 = (PINSEL0&P012_CLR_BITS) | P012_FOR_MAT1_0;
				break;
			case 1:
				PINSEL0 = (PINSEL0&P013_CLR_BITS) | P013_FOR_MAT1_1;
				break;
			case 2:
				PINSEL1 = (PINSEL1&P019_CLR_BITS) | P019_FOR_MAT1_2;
				break;
			case 3:
				PINSEL1 = (PINSEL1&P020_CLR_BITS) | P020_FOR_MAT1_3;
				break;
			default:
				break;
			}
		}
		T1IR = T1IR | (1<<MATn);
		T1PR = PR;

		/** 匹配寄存器*/
		*(uint32*)((&T1MR0)+MATn) = time;
		/** 匹配控制寄存器*/
		T1MCR = (T1MCR & (~(7<<(MATn*3)))) | (1<<(MATn*3+1+T_MODE)) | (1<<(MATn*3));
		/** 外部匹配寄存器*/
		T1EMR = (T1EMR & (~(3<<(MATn*2+4)))) | (EXT_MODE<<(MATn*2+4));
		VicEnable(TIMER1_NO);
		T1TCR = 0x03;
		T1TCR = 0x01;
		break;
	default:
		break;
	}
}

/** @func TnCNT_Init()
* @brief 計數(shù)器n初始化
* @param	Tn		定時器選擇
*			MODE	計數(shù)器模式選擇
*				0: CAPn的上升沿計數(shù)
*				1: CAPn的下降沿計數(shù)
*				2: CAPn上升沿和下降沿都計數(shù)
*			CAPn	計數(shù)器輸入端0~3
* @Retval	void
*/
void
TnCNT_Init(uint8 Tn, uint8 MODE, uint8 CAPn)
{
	switch (Tn) {
	case 0:
		switch (CAPn) {
		case 0:
			PINSEL0 = (PINSEL0&P002_CLR_BITS) | P002_FOR_CAP0_0;
			break;
		case 1:
			PINSEL0 = (PINSEL0&P004_CLR_BITS) | P004_FOR_CAP0_1;
			break;
		case 2:
			PINSEL0 = (PINSEL0&P006_CLR_BITS) | P006_FOR_CAP0_2;
			break;
		case 3:
			PINSEL1 = (PINSEL1&P029_CLR_BITS) | P029_FOR_CAP0_3;
			break;
		default:
			break;
		}
//		T0CTCR	= (CAPn<<2) | (MODE+1);
		T0TCR	= 0x03;
		T0TCR	= 0x01;
		break;
	case 1:
		switch (CAPn) {
		case 0:
			PINSEL0 = (PINSEL0&P010_CLR_BITS) | P010_FOR_CAP1_0;
			break;
		case 1:
			PINSEL0 = (PINSEL0&P011_CLR_BITS) | P011_FOR_CAP1_1;
			break;
		case 2:
			PINSEL1 = (PINSEL1&P017_CLR_BITS) | P017_FOR_CAP1_2;
			break;
		case 3:
			PINSEL1 = (PINSEL1&P018_CLR_BITS) | P018_FOR_CAP1_3;
			break;
		default:
			break;
		}
//		T1CTCR	= (CAPn<<2) | (MODE+1);
		T1TCR	= 0x03;
		T1TCR	= 0x01;
		break;
	default:
		break;
	}
}

/** @func	TnPWM_Init()
* @brief	PWMn初始化, 單邊沿控制模式
* @param	ch			PWM 通道號
*			Cyc			PWM 周期(us)
*			Mode		PWM 輸出模式 1 單邊沿 2 雙邊沿
*			H_time		PWM 高電平時間
*			L_time		PWM 低電平時間(Mode=1無效)
* @Retval	void
*/
void
TnPWM_Init(uint8 ch, uint32 Cyc, uint32 H_time)
{
	uint32	mr_cyc, mr_duty;

	/** 計算匹配值*/
	mr_cyc   = Fpclk / (PWM_PR+1) / 1000 * Cyc;
	mr_cyc  /= 1000;
	mr_duty  = Fpclk / (PWM_PR+1) / 1000 * H_time;
	mr_duty /= 1000;

	PWMPR	= PWM_PR;
	PWMMCR	= PWM_RESET;				// MR0
	PWMMR0	= mr_cyc;					// cycle
	/** Set PWM Pin*/
	switch (ch) {
	case 1:
		PINSEL0 = (PINSEL0&P000_CLR_BITS) | P000_FOR_PWM1;
		PWMMR1	= mr_duty;
		break;
	case 2:
		PINSEL0 = (PINSEL0&P007_CLR_BITS) | P007_FOR_PWM2;
		PWMMR2	= mr_duty;
		break;
	case 3:
		PINSEL0 = (PINSEL0&P001_CLR_BITS) | P001_FOR_PWM3;
		PWMMR3	= mr_duty;
		break;
	case 4:
		PINSEL0 = (PINSEL0&P008_CLR_BITS) | P008_FOR_PWM4;
		PWMMR4	= mr_duty;
		break;
	case 5:
		PINSEL1 = (PINSEL1&P021_CLR_BITS) | P021_FOR_PWM5;
		PWMMR5	= mr_duty;
		break;
	case 6:
		PINSEL0 = (PINSEL0&P009_CLR_BITS) | P009_FOR_PWM6;
		PWMMR6	= mr_duty;
		break;
	default:
		return;
	}
	PWMLER	= (1 << 0) | (1 << ch);		// 鎖存
	PWMPCR	= 1 << (ch + 8);			// 使能對應(yīng)PWM通道輸出
	PWMTCR	= 0x09;						// 啟動定時器, PWM使能
}

/** @func	TnPWM_Flush()
* @brief	重設(shè)PWM信號占空比
* @param	ch			PWM 通道號
*			time		PWM 高電平時間
* @Retval	void
*/
void
TnPWM_Flush(uint8 ch, uint32 time)
{
	uint32	mr;

	mr  = Fpclk / (PWM_PR+1) / 1000 * time;
	mr /= 1000;

	switch (ch) {
	case 1:
		PWMMR1	= mr;
		break;
	case 2:
		PWMMR2	= mr;
		break;
	case 3:
		PWMMR3	= mr;
		break;
	case 4:
		PWMMR4	= mr;
		break;
	case 5:
		PWMMR5	= mr;
		break;
	case 6:
		PWMMR6	= mr;
		break;
	default:
		return;
	}
	PWMLER	= 1 << ch;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
高清不卡在线观看| 51精品国自产在线| 9191精品国产综合久久久久久| 日韩精品一区二区三区视频播放 | 丰满亚洲少妇av| 欧美性生活大片视频| 国产午夜精品在线观看| 日韩av电影免费观看高清完整版| 国产高清不卡一区| 日韩一区二区免费视频| 亚洲男人天堂av| 国产99久久久国产精品潘金 | 欧美一级夜夜爽| 最新国产精品久久精品| 国产综合久久久久影院| 91精品国产福利| 首页亚洲欧美制服丝腿| 色又黄又爽网站www久久| 国产欧美日本一区二区三区| 蜜桃视频一区二区三区在线观看| 欧美偷拍一区二区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 一区二区三区久久| voyeur盗摄精品| 国产精品日韩成人| 国产成人精品三级| 久久精品一区八戒影视| 激情偷乱视频一区二区三区| 91精品国产综合久久久久久 | 国产精品久久久久久久久免费桃花| 美脚の诱脚舐め脚责91| 91精品国产麻豆| 日本欧美大码aⅴ在线播放| 欧美人xxxx| 首页欧美精品中文字幕| 91精品国产综合久久精品图片| 亚洲国产视频在线| 欧美三级蜜桃2在线观看| 亚洲美女一区二区三区| 日本道精品一区二区三区 | 舔着乳尖日韩一区| 4438x亚洲最大成人网| 视频在线观看国产精品| 欧美一区二区久久| 九九热在线视频观看这里只有精品| 欧美一区二区三区免费视频| 蜜桃精品视频在线| 国产香蕉久久精品综合网| 国v精品久久久网| 国产精品国产三级国产aⅴ无密码| a美女胸又www黄视频久久| 中文字幕一区二区三区在线播放| 99视频一区二区| 五月天网站亚洲| 欧美tk—视频vk| 成人黄色免费短视频| 亚洲人成7777| 欧美一级二级在线观看| 国产成人免费在线观看不卡| 亚洲同性gay激情无套| 在线免费一区三区| 久久疯狂做爰流白浆xx| 国产精品美女视频| 欧美日韩的一区二区| 国产一区二区h| 一区二区三区成人在线视频| 欧美一区二区视频在线观看2022| 韩国精品主播一区二区在线观看 | 国产精品理伦片| 欧美精品亚洲一区二区在线播放| 狠狠色丁香婷综合久久| 亚洲人成网站精品片在线观看| 欧美一级淫片007| 99久久国产免费看| 91久久免费观看| 蜜桃一区二区三区在线观看| 国产精品久久久久婷婷二区次| 欧美日韩第一区日日骚| 福利视频网站一区二区三区| 午夜电影网一区| 国产拍揄自揄精品视频麻豆| 欧美裸体bbwbbwbbw| 成人免费av在线| 日本欧美大码aⅴ在线播放| 国产精品嫩草久久久久| 欧美一区二区视频在线观看2022| 91在线一区二区| 日本亚洲三级在线| 亚洲免费成人av| 国产精品你懂的| 精品99一区二区三区| 欧美私人免费视频| 99久久精品99国产精品| 精品在线观看免费| 天堂资源在线中文精品| 亚洲男人的天堂一区二区| www成人在线观看| 宅男在线国产精品| 91极品视觉盛宴| av在线一区二区三区| 国产曰批免费观看久久久| 五月婷婷久久综合| 亚洲国产精品久久久男人的天堂| 国产精品美女www爽爽爽| 久久色视频免费观看| 日韩欧美视频在线| 91精品欧美综合在线观看最新| 91官网在线观看| 久久久久久日产精品| 日韩欧美高清一区| 91精品婷婷国产综合久久竹菊| 欧美性猛交xxxx黑人交| 色呦呦一区二区三区| 99久久精品免费精品国产| 国产乱码精品一区二区三 | 国产毛片一区二区| 精品一区二区国语对白| 狠狠狠色丁香婷婷综合激情| 久久99精品国产.久久久久久| 免费在线视频一区| 另类小说图片综合网| 韩国一区二区在线观看| 国产一区二区不卡在线| 国产suv一区二区三区88区| 国产成人在线观看免费网站| 国产成人av在线影院| 成人性生交大合| 色综合色综合色综合| 日本道免费精品一区二区三区| 欧美亚洲一区二区在线| 欧美精品日韩一区| 日韩精品中午字幕| 国产欧美精品一区二区色综合| 中文字幕一区二区三区不卡| 亚洲美女视频在线观看| 亚洲一区二区综合| 日韩激情一二三区| 激情综合色综合久久| 国产精品99久久久| 91麻豆免费观看| 7777女厕盗摄久久久| 久久精品亚洲麻豆av一区二区| 国产精品久久久久影院老司| 亚洲最快最全在线视频| 日本中文在线一区| 国产成人8x视频一区二区| 日本久久电影网| 精品免费国产一区二区三区四区| 国产精品久久久久久户外露出 | 2023国产精华国产精品| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 国产精品白丝av| 一本一道久久a久久精品| 69久久99精品久久久久婷婷| 久久精品视频一区二区| 亚洲国产精品影院| 国产一区二区三区av电影| 91免费视频网址| 日韩免费观看高清完整版| 亚洲欧美怡红院| 久久精品久久精品| 在线一区二区三区四区五区| 欧美成人猛片aaaaaaa| 中文字幕一区二区三区四区| 麻豆国产欧美一区二区三区| 色综合天天性综合| 亚洲精品一区在线观看| 亚洲妇女屁股眼交7| 成人免费毛片aaaaa**| 91精品国产一区二区人妖| 国产精品毛片高清在线完整版| 日韩不卡在线观看日韩不卡视频| 99久久综合国产精品| 精品对白一区国产伦| 亚洲不卡一区二区三区| 暴力调教一区二区三区| 久久一夜天堂av一区二区三区 | 国产精品黄色在线观看| 日本怡春院一区二区| 国产精品无圣光一区二区| 日本美女一区二区三区| 在线欧美小视频| 亚洲美女视频在线| 成人国产亚洲欧美成人综合网 | 制服丝袜中文字幕一区| 亚洲品质自拍视频网站| 国产精品亚洲午夜一区二区三区| 欧美一区二区美女| 肉肉av福利一精品导航| 在线观看中文字幕不卡| 亚洲欧美激情一区二区| 福利一区二区在线| 久久精品欧美日韩| 国产美女精品人人做人人爽 | 麻豆精品一区二区| 欧美日韩高清一区二区| 午夜精品久久久久久久蜜桃app| 91国偷自产一区二区三区观看| ...av二区三区久久精品| av一区二区久久|