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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? funpwm.c

?? dsp2407的函數(shù)庫(kù)
?? C
字號(hào):
/****************************************************************
*	funpwm.c					See funlib.h for instuctions	*
*	Don Luebbe                  about using this file.          *
*	10/12/02                                                    *
*																*
*	This file defines two PWM functions: initPWM() and setPWM().*
*	initPWM() initializes a pair of pins as PWM outputs and must*
*	be called for each set of pins.  The output come in pairs   *
*	because there are two pins available for each compare 		*
*	register.  The pins in a pair are inverses of each other.   *
*	setPWM() accepts one of a pair's pin numbers and updates the*
*	corresponding compare register with the desired duty cycle. *
*	It should be used as needed to update a given pwm output.	*
*																*
*	Example:	main()                                          *
*				{                                               *
*					initPWM(1,2000);                            *
*					...                                         *
*					while(1)                                    *
*					{                                           *
*						dutycycle = ...;                        *
*						setPWM(1,dutycycle);                    *
*					}                                           *
*				}                                               *
*				This code sets up PWM1 with a 20 kHz carrier 	*
*				frequency and updates the dutycycle everytime	*
*				through the while loop.							*
****************************************************************/

#include        "f2407_c.h"
#include        "funlib.h"
#include		<math.h>

int initPWM(int channel, int period)
{
	if ((channel < 1) || (channel > 12))
	{
		return -1;			/* returns -1 if channel is not valid */
	}   
	
	if (channel < 7)        /* chooses between event managers */
	{
    	*T1CON = 0x0000;      /* disable timer 1 */
    	*GPTCONA = 0x0000;    /* configure GPTCONA */
		/*     
 		bit 15        0:      reserved
 		bit 14        0:      T2STAT, read-only
 		bit 13        0:      T1STAT, read-only
 		bit 12-11     00:     reserved
		bit 10-9      00:     T2TOADC, 00 = no timer2 event starts ADC
 		bit 8-7       00:     T1TOADC, 00 = no timer1 event starts ADC
 		bit 6         0:      TCOMPOE, 0 = Hi-z all timer compare outputs
 		bit 5-4       00:     reserved
 		bit 3-2       00:     T2PIN, 00 = forced low
 		bit 1-0       00:     T1PIN, 00 = forced low
		*/

    	*T1CNT = 0x0000;      /* clear timer counter */
    	*T1PR = period;       /* set timer period */
    	*DBTCONA = 0x0000;    /* deadband units off */
    
    	switch(channel)
    	{
    		case 1: *MCRA = *MCRA | 0x0040;
    				*ACTRA = (*ACTRA & ~0x0003);
    				*ACTRA = (*ACTRA | 0x0002);
    				*CMPR1 = 0;		/* set PWM1/2 duty cycle */
    				break;
    			
    		case 2: *MCRA = *MCRA | 0x0080;
    				*ACTRA = *ACTRA & ~0x000C;
    				*ACTRA = *ACTRA | 0x0008;
    				*CMPR1 = 0;
	    			break;
    				
	    	case 3: *MCRA = *MCRA | 0x0100;
	    			*ACTRA = *ACTRA & ~0x0030;
    				*ACTRA = *ACTRA | 0x0020;
    				*CMPR2 = 0;     /* set PWM3/4 duty cycle */
    				break;
    			
	    	case 4: *MCRA = *MCRA | 0x0200;
	    			*ACTRA = *ACTRA & ~0x00C0;
    				*ACTRA = *ACTRA | 0x0080;
    				*CMPR2 = 0;
    				break;
    			
    		case 5: *MCRA = *MCRA | 0x0400;
    				*ACTRA = *ACTRA & ~0x0300;
    				*ACTRA = *ACTRA | 0x0200;
    				*CMPR3 = 0;     /* set PWM5/6 duty cycle */
    				break;
    			
    		case 6: *MCRA = *MCRA | 0x0800;
    		        *ACTRA = *ACTRA & ~0x0C00;
    				*ACTRA = *ACTRA | 0x0800;
    				*CMPR3 = 0;
    				break;
    
			/*
 			bit 15        space vector dir is CCW (don't care)
	 		bit 14-12     basic space vector is 000 (dont' care)
 			bit 11-10     PWM6/IOPB3 pin activity
 			bit 9-8       PWM5/IOPB2 pin activity
	 		bit 7-6       PWM4/IOPB1 pin activity
	 		bit 5-4       PWM3/IOPB0 pin activity
	 		bit 3-2       PWM2/IOPA7 pin activity
 			bit 1-0       PWM1/IOPA6 pin activity
			*/
	    }
     
    	*COMCONA = 0x8200;    /* configure COMCONA register */
		/*
 		bit 15        1:      1 = enable compare operation
	 	bit 14-13     00:     00 = reload CMPRx regs on timer 1 underflow
	 	bit 12        0:      0 = space vector disabled
	 	bit 11-10     00:     00 = reload ACTR on timer 1 underflow
	 	bit 9         1:      1 = enable PWM pins
	 	bit 8-0       0's:    reserved
		*/
    
    	*T1CON = 0xD048;      /* configure T1CON register */
		/*     
	 	bit 15-14     00:     stop immediately on emulator suspend
	 	bit 13        0:      reserved
 		bit 12-11     10:     10 = continous-up count mode
	 	bit 10-8      000:    000 = x/1 prescaler
	 	bit 7         0:      reserved in T1CON
 		bit 6         1:      TENABLE, 1 = enable timer
 		bit 5-4       00:     00 = CPUCLK is clock source
 		bit 3-2       10:     10 = reload immediately
 		bit 1         0:      0 = disable timer compare
 		bit 0         0:      reserved in T1CON
		*/
	}
	else
	{
		*T3CON = 0x0000;      /* disable timer 3 */
    	*GPTCONB = 0x0000;    /* configure GPTCONB */
	    *T3CNT = 0x0000;      /* clear timer counter */
	    *T3PR = period;       /* set timer period */
	    *DBTCONB = 0x0000;    /* deadband units off */
    
	    switch(channel)
    	{
    		case 7: 	*MCRC = *MCRC | 0x0002;
    					*ACTRB = *ACTRB & ~0x0003;
    					*ACTRB = *ACTRB | 0x0002;
    					*CMPR4 = 0;		/* set PWM7/8 duty cycle */
    					break;
    			
    		case 8: 	*MCRC = *MCRC | 0x0004;
    					*ACTRB = *ACTRB & ~0x000C;
    					*ACTRB = *ACTRB | 0x0008;
    					*CMPR4 = 0;
    					break;
    			
	    	case 9: 	*MCRC = *MCRC | 0x0008;
	    				*ACTRB = *ACTRB & ~0x0030;
    					*ACTRB = *ACTRB | 0x0020;
    					*CMPR5 = 0;     /* set PWM9/10 duty cycle */
    					break;
    			
	    	case 10: 	*MCRC = *MCRC | 0x0010;
    					*ACTRB = *ACTRB & ~0x00C0;
    					*ACTRB = *ACTRB | 0x0080;
    					*CMPR5 = 0;
    					break;
    			
	    	case 11: 	*MCRC = *MCRC | 0x0020;
    					*ACTRB = *ACTRB & ~0x0300;
    					*ACTRB = *ACTRB | 0x0200;
    					*CMPR6 = 0;     /* set PWM11/12 duty cycle */
    					break;
    			
	    	case 12: 	*MCRC = *MCRC | 0x0040;
    					*ACTRB = *ACTRB & ~0x0C00;
    					*ACTRB = *ACTRB | 0x0800;
    					*CMPR6 = 0;
    					break;
    }
     
    *COMCONB = 0x8200;    /* configure COMCONB register */
    *T3CON = 0xD048;      /* configure T3CON register */
	
	}
	return 0;
}

int setPWM(int channel, int dutycycle)
{   
	if ((channel < 1) || (channel > 12))
	{
		return -1;		/* returns -1 if channel is not valid */
	}
	
	if (channel < 7)    /* chooses between event managers */
	{
		switch(channel)
		{
			case 1:	*CMPR1 = dutycycle;
					break;
					
			case 2: *CMPR1 = dutycycle;
					break;
			
			case 3:	*CMPR2 = dutycycle;
					break;
					
			case 4: *CMPR2 = dutycycle;
					break;
					
			case 5:	*CMPR3 = dutycycle;
					break;
					
			case 6: *CMPR3 = dutycycle;
					break;
		}
	}
	else
	{
	    switch(channel)
		{
			case 7:		*CMPR4 = dutycycle;
						break;
					
			case 8: 	*CMPR4 = dutycycle;
						break;
			
			case 9:		*CMPR5 = dutycycle;
						break;
					
			case 10: 	*CMPR5 = dutycycle;
						break;
					
			case 11:	*CMPR6 = dutycycle;
						break;
					
			case 12: 	*CMPR6 = dutycycle;
						break;
		}
	}
	return 0;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
3atv一区二区三区| 精品久久久久久久久久久久久久久 | 国产99精品国产| 亚洲综合色噜噜狠狠| 精品日韩一区二区三区| 在线观看www91| 国产精品中文有码| 日本不卡在线视频| 一区二区三区四区不卡在线| 久久综合九色综合97_久久久| 欧洲视频一区二区| 成人午夜免费av| 国产福利视频一区二区三区| 五月天激情综合网| 亚洲人成网站色在线观看| 国产午夜精品一区二区三区视频 | 偷拍一区二区三区| 中文字幕在线不卡视频| 久久众筹精品私拍模特| 欧美日韩国产三级| 欧美撒尿777hd撒尿| 99久久精品免费看| 国产999精品久久久久久| 久久精品国产一区二区三 | 成人爱爱电影网址| 国产伦精品一区二区三区免费迷| 日日夜夜精品视频免费 | 国产激情视频一区二区三区欧美| 日韩激情中文字幕| 日韩在线播放一区二区| 亚洲成av人片在线观看无码| 亚洲精品视频一区| 自拍视频在线观看一区二区| 国产精品不卡一区| 亚洲天堂福利av| 成人免费小视频| 日韩一区在线播放| 国产精品久久久久久久久免费丝袜| 国产午夜精品久久久久久久| 26uuu精品一区二区| 精品国产乱码91久久久久久网站| 日韩一区二区视频在线观看| 欧美一区二区啪啪| 日韩一区二区免费高清| 日韩精品专区在线影院重磅| 精品福利一二区| 久久久一区二区三区| 久久精品夜色噜噜亚洲aⅴ| 久久男人中文字幕资源站| 国产亚洲欧美一级| 成人欧美一区二区三区黑人麻豆| 亚洲欧洲av在线| 亚洲一级不卡视频| 人人精品人人爱| 国产精品一线二线三线| 国产成人99久久亚洲综合精品| 成人av资源下载| 日本丶国产丶欧美色综合| 欧美性色欧美a在线播放| 欧美日韩视频专区在线播放| 91精品国产色综合久久| 久久你懂得1024| 亚洲色欲色欲www在线观看| 亚洲国产成人porn| 蜜桃一区二区三区四区| 国产酒店精品激情| 99国产精品久久久久久久久久| 色哟哟日韩精品| 欧美一区二区久久| 日本一区二区三区电影| 一区二区三区在线影院| 三级影片在线观看欧美日韩一区二区| 韩日欧美一区二区三区| 不卡的av网站| 欧美一激情一区二区三区| 中文字幕av资源一区| 亚洲综合男人的天堂| 精品亚洲欧美一区| 91社区在线播放| 欧美videos中文字幕| √…a在线天堂一区| 日韩和欧美的一区| 福利一区在线观看| 欧美日韩黄色一区二区| 日本一区二区三区在线观看| 亚洲www啪成人一区二区麻豆 | jvid福利写真一区二区三区| 欧美色中文字幕| 国产精品青草久久| 六月丁香婷婷久久| 在线观看日韩高清av| 久久综合色鬼综合色| 一区二区三区.www| 国产一区二区不卡老阿姨| 欧美色老头old∨ideo| 欧美激情一区二区三区不卡| 日本美女视频一区二区| 91麻豆自制传媒国产之光| 精品av综合导航| 亚洲与欧洲av电影| 成人黄色在线视频| 欧美第一区第二区| 一区二区不卡在线播放| 成人性色生活片免费看爆迷你毛片| 777亚洲妇女| 一区二区在线观看视频 | 在线播放中文一区| 亚洲欧美激情小说另类| 国精产品一区一区三区mba桃花 | 精品噜噜噜噜久久久久久久久试看| 亚洲丝袜精品丝袜在线| 国产精品一区二区三区乱码| 91精选在线观看| 一区二区三区国产精华| 99视频一区二区三区| 国产三级三级三级精品8ⅰ区| 日韩1区2区3区| 欧美私模裸体表演在线观看| 日韩一区在线看| eeuss鲁片一区二区三区| www国产成人免费观看视频 深夜成人网 | 中文在线免费一区三区高中清不卡| 久久精品国产精品亚洲红杏| 欧美日韩一区二区三区四区| 亚洲女同女同女同女同女同69| 成人国产亚洲欧美成人综合网| 欧美精品一区二区蜜臀亚洲| 秋霞午夜av一区二区三区| 9191成人精品久久| 日韩高清不卡一区二区| 欧美男生操女生| 日韩黄色免费网站| 91精品国产综合久久久久久漫画 | xfplay精品久久| 精品夜夜嗨av一区二区三区| 欧美草草影院在线视频| 美女国产一区二区三区| 欧美一二区视频| 国内成+人亚洲+欧美+综合在线| 精品久久久久香蕉网| 国产一区二区三区久久久| 久久综合久久99| 国产电影一区在线| 国产精品福利一区二区| 日本丰满少妇一区二区三区| 亚洲一区二区三区在线播放| 欧洲人成人精品| 日韩电影在线一区| 亚洲精品在线免费播放| 成人性生交大片免费看中文 | 91精品黄色片免费大全| 日韩av在线播放中文字幕| 欧美xxxxx裸体时装秀| 国产综合色在线| 中文字幕一区日韩精品欧美| 91一区二区在线观看| 夜夜嗨av一区二区三区网页| 欧美久久高跟鞋激| 狠狠色伊人亚洲综合成人| 中文字幕久久午夜不卡| 日韩一区二区视频| 久久99精品久久久| 国产精品你懂的在线欣赏| 色噜噜狠狠成人网p站| 亚洲国产精品久久艾草纯爱| 日韩一区二区免费在线电影| 大陆成人av片| 亚洲午夜在线视频| 日韩欧美中文字幕一区| 不卡的av网站| 日本不卡视频在线| 欧美国产日本韩| 欧美日本不卡视频| 粉嫩高潮美女一区二区三区| 亚洲欧美日韩中文字幕一区二区三区 | 日本三级亚洲精品| 国产免费观看久久| 欧洲另类一二三四区| 免费成人在线播放| 欧美极品美女视频| 91看片淫黄大片一级在线观看| 五月天久久比比资源色| 26uuu亚洲| 欧美三级蜜桃2在线观看| 国产自产v一区二区三区c| 亚洲欧美日韩国产综合| 日韩女同互慰一区二区| 色综合久久88色综合天天免费| 蜜桃av噜噜一区| 亚洲青青青在线视频| 日韩视频免费观看高清完整版在线观看 | 欧美tk丨vk视频| 一本色道**综合亚洲精品蜜桃冫| 久久精品国产精品青草| 亚洲精品视频在线| 亚洲国产精品黑人久久久| 欧美一区二区三区免费大片 | 99久久99久久久精品齐齐| 美女视频黄久久| 国产激情一区二区三区|