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

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

?? func.c

?? DSPTMS2407A控制直流無刷電機(jī)源程序,含頭文件,說明,本人親自試過.
?? C
字號:
#include    "f2407_c.h" 
#include	"var.h" 
#include 	"math.h"


/*** Constant Definitions ***/
#define         timer2_per    5000     /*  timer2 period with a 1/128
                                       timer prescaler and 40MHz CPUCLK */
#define PI 		3.1415926
unsigned int adc_res;
unsigned int dir=1; 
unsigned int ldd=0;
unsigned int PWM_DUTY=pwm_half_per/2;
unsigned int hall=0x000;
unsigned int I_result[I_LOOP/I_DIV];
unsigned int Speed_result[I_LOOP/SPEED_DIV];
unsigned int i=0;
unsigned int T4_NUM0=0,T4_NUM1=0;
unsigned int time_cnt=C_TIME;

/****************************** MAIN ROUTINE ***************************/
void ini(void)
{

/*** Configure the System Control and Status registers ***/
    *SCSR1 = 0x00FD;
/*
 bit 15        0:      reserved
 bit 14        0:      CLKOUT = CPUCLK
 bit 13-12     00:     IDLE1 selected for low-power mode
 bit 11-9      000:    PLL x4 mode
 bit 8         0:      reserved
 bit 7         1:      1 = enable ADC module clock
 bit 6         1:      1 = enable SCI module clock
 bit 5         1:      1 = enable SPI module clock
 bit 4         1:      1 = enable CAN module clock
 bit 3         1:      1 = enable EVB module clock
 bit 2         1:      1 = enable EVA module clock
 bit 1         0:      reserved
 bit 0         1:      clear the ILLADR bit
*/

    *SCSR2 = (*SCSR2 | 0x000B) & 0x000F;
/*
 bit 15-6      0's:    reserved
 bit 5         0:      do NOT clear the WD OVERRIDE bit
 bit 4         0:      XMIF_HI-Z, 0=normal mode, 1=Hi-Z'd
 bit 3         1:      disable the boot ROM, enable the FLASH
 bit 2     no change   MP/MC* bit reflects state of MP/MC* pin
 bit 1-0      11:      11 = SARAM mapped to prog and data
*/


/*** Disable the watchdog timer ***/
    *WDCR  = 0x00E8;
/*
 bits 15-8     0's:     reserved
 bit 7         1:       clear WD flag
 bit 6         1:       disable the dog
 bit 5-3       101:     must be written as 101
 bit 2-0       000:     WDCLK divider = 1
*/


/*** Setup external memory interface for LF2407 EVM ***/
    WSGR = 0x0000;
/*
 bit 15-11     0's:    reserved
 bit 10-9      00:     bus visibility off
 bit 8-6       001:    1 wait-state for I/O space
 bit 5-3       000:    0 wait-state for data space
 bit 2-0       000:    0 wait state for program space
*/


/*** Setup shared I/O pins ***/
    *MCRA = 0x0fc0;                     /* group A pins */
/*
 bit 15        0:      0=IOPB7,     1=TCLKINA
 bit 14        0:      0=IOPB6,     1=TDIRA
 bit 13        0:      0=IOPB5,     1=T2PWM/T2CMP
 bit 12        0:      0=IOPB4,     1=T1PWM/T1CMP
 bit 11        1:      0=IOPB3,     1=PWM6
 bit 10        1:      0=IOPB2,     1=PWM5
 bit 9         1:      0=IOPB1,     1=PWM4
 bit 8         1:      0=IOPB0,     1=PWM3
 bit 7         1:      0=IOPA7,     1=PWM2
 bit 6         1:      0=IOPA6,     1=PWM1
 bit 5         0:      0=IOPA5,     1=CAP3
 bit 4         0:      0=IOPA4,     1=CAP2/QEP2
 bit 3         0:      0=IOPA3,     1=CAP1/QEP1
 bit 2         0:      0=IOPA2,     1=XINT1
 bit 1         0:      0=IOPA1,     1=SCIRXD
 bit 0         0:      0=IOPA0,     1=SCITXD
*/

    *MCRB = 0xFE00;                     /* group B pins */
/*
 bit 15        1:      0=reserved,  1=TMS2 (always write as 1)
 bit 14        1:      0=reserved,  1=TMS  (always write as 1)
 bit 13        1:      0=reserved,  1=TD0  (always write as 1)
 bit 12        1:      0=reserved,  1=TDI  (always write as 1)
 bit 11        1:      0=reserved,  1=TCK  (always write as 1)
 bit 10        1:      0=reserved,  1=EMU1 (always write as 1)
 bit 9         1:      0=reserved,  1=EMU0 (always write as 1)
 bit 8         0:      0=IOPD0,     1=XINT2/ADCSOC
 bit 7         0:      0=IOPC7,     1=CANRX
 bit 6         0:      0=IOPC6,     1=CANTX
 bit 5         0:      0=IOPC5,     1=SPISTE
 bit 4         0:      0=IOPC4,     1=SPICLK
 bit 3         0:      0=IOPC3,     1=SPISOMI
 bit 2         0:      0=IOPC2,     1=SPISIMO
 bit 1         0:      0=IOPC1,     1=BIO*
 bit 0         0:      0=IOPC0,     1=W/R*
*/

    *MCRC = 0x0000;                     /* group C pins */
/*
 bit 15        0:      reserved
 bit 14        0:      0=IOPF6,     1=IOPF6
 bit 13        0:      0=IOPF5,     1=TCLKINB
 bit 12        0:      0=IOPF4,     1=TDIRB
 bit 11        0:      0=IOPF3,     1=T4PWM/T4CMP
 bit 10        0:      0=IOPF2,     1=T3PWM/T3CMP
 bit 9         0:      0=IOPF1,     1=CAP6
 bit 8         0:      0=IOPF0,     1=CAP5/QEP4
 bit 7         0:      0=IOPE7,     1=CAP4/QEP3
 bit 6         0:      0=IOPE6,     1=PWM12
 bit 5         0:      0=IOPE5,     1=PWM11
 bit 4         0:      0=IOPE4,     1=PWM10
 bit 3         0:      0=IOPE3,     1=PWM9
 bit 2         0:      0=IOPE2,     1=PWM8
 bit 1         0:      0=IOPE1,     1=PWM7
 bit 0         0:      0=IOPE0,     1=CLKOUT    
*/


/*** Configure PA5,PA4,PA3 pin as input ***/
    *PADATDIR = *PADATDIR&0xc7ff;


/*** Setup timers 1 and 2, and the PWM configuration ***/
    *T1CON = 0x0000;                    /* disable timer 1 */
    *T2CON = 0x0000;                    /* disable timer 2 */

    *GPTCONA = 0x0100;                  /* 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       10:     T1TOADC, 
 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
*/


/* Timer 1: configure to clock the PWM on PWM1 pin */
/* Symmetric PWM, 20KHz carrier frequency, 25% duty cycle */
    *T1CNT = 0x0000;                    /* clear timer counter */
    *T1PR = pwm_half_per;               /* set timer period */
    *DBTCONA = 0x0000;                  /* deadband units off */
    *CMPR3=*CMPR2=*CMPR1=PWM_DUTY;                  /* set PWM1 duty cycle */ 
    
    *ACTRA = 0x0fff;                    /* PWM1 pin set active high */     
/*
 bit 15        0:      space vector dir is CCW (don't care)
 bit 14-12     000:    basic space vector is 000 (dont' care)
 bit 11-10     01:     PWM6/IOPB3 pin active low
 bit 9-8       10:     PWM5/IOPB2 pin active high
 bit 7-6       01:     PWM4/IOPB1 pin active low
 bit 5-4       10:     PWM3/IOPB0 pin active high
 bit 3-2       01:     PWM2/IOPA7 pin active low
 bit 1-0       10:     PWM1/IOPA6 pin active high
*/

     *COMCONA = 0x8200;                 /* configure COMCON 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 = 0x4840;                   /* configure T1CON register */
/*     
 bit 15-14     00:     stop immediately on emulator suspend
 bit 13        0:      reserved
 bit 12-11     01:     01 = continous-up/down 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       00:     00 = reload compare reg on underflow
 bit 1         0:      0 = disable timer compare
 bit 0         0:      reserved in T1CON
*/


/* Timer 2: configure to generate a 250ms periodic interrupt */
    *T2CNT = 0x0000;                    /* clear timer counter */
    *T2PR = timer2_per;                 /* set timer period */

    *T2CON = 0x5740;                    /* configure T2CON register */
/*     
 bit 15-14     11:     stop immediately on emulator suspend
 bit 13        0:      reserved
 bit 12-11     10:     10 = continous-up count mode
 bit 10-8      111:    111 = x/128 prescaler
 bit 7         0:      T2SWT1, 0 = use own TENABLE bit
 bit 6         1:      TENABLE, 1 = enable timer
 bit 5-4       00:     00 = CPUCLK is clock source
 bit 3-2       00:     00 = reload compare reg on underflow
 bit 1         0:      0 = disable timer compare
 bit 0         0:      SELT1PR, 0 = use own period register
*/

/*** Setup the core interrupts ***/
    *IMR = 0x0000;                      /* clear the IMR register */
    *IFR = 0x003F;                      /* clear any pending core interrupts */
    *IMR = 0x0007;                      /* enable desired core interrupts (in2,in3)*/

/*** Setup the event manager interrupts ***/
    *EVAIFRA = 0xFFFF;                  /* clear all EVA group A interrupts */
    *EVAIFRB = 0xFFFF;                  /* clear all EVA group B interrupts */
    *EVAIFRC = 0xFFFF;                  /* clear all EVA group C interrupts */
    *EVAIMRA = 0x0200;                  /* enable desired EVA group A interrupts */
    *EVAIMRB = 0x0001;                  /* enable desired EVA group B interrupts ENABLE TIME2*/
    *EVAIMRC = 0x0000;                  /* enable desired EVA group C interrupts */

    *EVBIFRA = 0xFFFF;                  /* clear all EVB group A interrupts */
    *EVBIFRB = 0xFFFF;                  /* clear all EVB group B interrupts */
    *EVBIFRC = 0xFFFF;                  /* clear all EVB group C interrupts */
    *EVBIMRA = 0x0000;                  /* enable desired EVB group A interrupts */
    *EVBIMRB = 0x0000;                  /* enable desired EVB group B interrupts */
    *EVBIMRC = 0x0000;                  /* enable desired EVB group C interrupts */

}

void init_adc(void)
{
	*ADCTRL1=0x00;		/*ADC is triggered By EVA*/
	*ADCTRL2=0x0504;
	*MAX_CONV=0x07;
	*CHSELSEQ1=0x3210;
	*CHSELSEQ2=0x7654;
}
/*
void adc_soc(void)
{
	*T4CON=*T4CON|0x40;
}
*/	                                      
void interrupt adcint(void)
{
	asm("	clrc SXM");
	if(!(i%SPEED_DIV))
	{
		T4_NUM1 = *T4CNT;
		Speed_result[i/SPEED_DIV] = (T4_NUM1 - T4_NUM0);
		T4_NUM0 = T4_NUM1;
	}
	
	if(!(i%I_DIV))
	{
		adc_res=*RESULT5>>6;
		I_result[i/I_DIV]=*RESULT0>>6;
		if(adc_res>0x2cf)adc_res=0x2cf;
		if(adc_res<0x38)adc_res=0x38;
		*ADCTRL2|=0x4200;
		PWM_DUTY=1200+(adc_res-0x38);
		if(PWM_DUTY<1200)PWM_DUTY=1200;
		if(PWM_DUTY>1800)PWM_DUTY=1800;
	}
	i++;
	if(i>=I_LOOP)
		i = 0;
	asm(" CLRC INTM");
}

void stop(void)
{
	unsigned int i,j;
	*ACTRA=0x0333;
	for(i=0;i<10;i++)
	for(j=0;j<40000;j++);
}
	
	



/********************** INTERRUPT SERVICE ROUTINES *********************/
interrupt void timer2_isr(void)
{
     asm(" SETC INTM");
     
     *EVAIFRB = *EVAIFRB & 0x0001;      /* clear T2PINT flag */
     
     if(time_cnt==0)
     {
 	 	ldd=!ldd;
 	 	/*
 	 	stop();
 	 	dir=!dir;
 	 	*/
 	 	time_cnt=C_TIME;
 	 }
 	 time_cnt--;
 	 
 	 asm(" CLRC INTM");
} 


/********************** interrupt 2 service routine************************/
interrupt void inter2_isr(void)
{
	/*asm(" SETC INTM");*/
	*EVAIFRA = *EVAIFRA & 0x0200;
	hall=*PADATDIR&0x0038;
	if(*PIVR==0x0029)             /*time1 overbelow interrupt*/
	{
		switch(hall)
		{
			case 0x08:    /*PWM1-PWM6   ANC*/
			{   
				if(dir==0)
				*ACTRA=0x03fd;
				else
				*ACTRA=0x0df3; 
				break;
			}
			case 0x18:	/*PWM3-PWM6     BNC*/
			{
				if(dir==0)
				*ACTRA=0x03df;
				else
				*ACTRA=0x0d3f;
				break;
			}
			case 0x10:	/*PWM3-PWM2		BNA*/
			{
				if(dir==0)
				*ACTRA=0x0fd3;
				else
				*ACTRA=0x0f3d;
				break;
			}
			case 0x30:	/*PWM5-PWM2		CNA*/
			{
				if(dir==0)
				*ACTRA=0x0df3;
				else
				*ACTRA=0x03fd;
				break;
			}
			case 0x20:	/*PWM5-PWM4		CNB*/
			{
				if(dir==0)
				*ACTRA=0x0d3f;
				else
				*ACTRA=0x03df;
				break;
			}
			case 0x28:	/*PWM1-PWM4		ANB*/
			{
				if(dir==0)
				*ACTRA=0x0f3d;
				else
				*ACTRA=0x0fd3;
				break;
			}
			default:
			{
				*ACTRA=0x0fff;
			}
		}
		*CMPR3=*CMPR2=*CMPR1=PWM_DUTY; 
		
		/*CMPR1=*CMPR2=*CMPR3=pwm_half_per/2;
		/*
		*CMPR1=(unsigned int)(pwm_half_per*(0.5+0.5*sin(((index_pwm)*2*PI)/(float)(num_f_d))));
		*CMPR2=(unsigned int)(pwm_half_per*(0.5+0.5*sin(((index_pwm+num_f_d/3)*2*PI)/(float)(num_f_d))));
		*CMPR3=(unsigned int)(pwm_half_per*(0.5+0.5*sin(((index_pwm+(num_f_d/3)*2)*2*PI)/(float)(num_f_d))));
		index_pwm++;
		if(index_pwm>300)index_pwm=1;
		*/ 
		
	} 
	/*asm(" CLRC INTM");*/
}

void qep_init(void)
{
	*T4PR = 0xffff;
	*T4CON = 0x1870;
	*T4CNT = 0;
	*CAPCONB = 0xe000;
}

		
		

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品99久久久久久有的能看 | 中文字幕一区二区三中文字幕| 中文字幕国产一区| 亚洲欧美日韩久久| 日韩激情视频在线观看| 国产精选一区二区三区| av电影一区二区| 欧美一区二区三区四区高清| 欧美激情一区二区三区| 国产激情视频一区二区三区欧美| 波多野结衣中文字幕一区二区三区 | 色悠悠亚洲一区二区| 69精品人人人人| 中文一区一区三区高中清不卡| 亚洲一区二区三区中文字幕| 韩国午夜理伦三级不卡影院| 91麻豆国产福利在线观看| 日韩欧美久久一区| 亚洲精品成人悠悠色影视| 精品一区二区免费看| 色八戒一区二区三区| 精品久久久久99| 玉米视频成人免费看| 国产精品综合在线视频| 欧美日韩激情在线| 国产精品不卡在线| 精品一区二区日韩| 欧美日韩在线免费视频| 中国av一区二区三区| 美女在线视频一区| 欧美视频一二三区| 国产精品黄色在线观看| 美女看a上一区| 精品污污网站免费看| 国产精品网站导航| 黑人精品欧美一区二区蜜桃| 欧美精品乱人伦久久久久久| 亚洲女女做受ⅹxx高潮| 粉嫩一区二区三区性色av| 日韩午夜在线观看| 亚洲国产一区在线观看| 91视频国产资源| 国产欧美日韩另类一区| 另类调教123区| 欧美日本一道本在线视频| 亚洲欧美一区二区三区久本道91| 国产成人综合在线播放| 精品av久久707| 免费看精品久久片| 91精品黄色片免费大全| 亚洲一级片在线观看| 色综合久久久久综合| 国产精品久久久久久久久久久免费看| 久草在线在线精品观看| 日韩一区二区影院| 蜜桃视频在线观看一区| 91精品福利在线一区二区三区 | 51精品秘密在线观看| 亚洲国产你懂的| 日本久久电影网| 综合久久久久综合| 成人午夜视频福利| 欧美激情一区二区| 成人永久aaa| 日韩国产在线观看一区| 欧美日本一区二区三区| 五月天婷婷综合| 欧美一区日本一区韩国一区| 日韩av电影天堂| 日韩视频在线你懂得| 久久国产综合精品| 精品欧美乱码久久久久久1区2区| 久久精品久久99精品久久| 日韩丝袜美女视频| 国产一区二区久久| 国产午夜精品一区二区三区视频 | 日韩理论电影院| 99re热这里只有精品免费视频| 欧美国产综合色视频| 成人短视频下载| 亚洲视频一二区| 在线欧美小视频| 亚洲一区二区偷拍精品| 欧美日韩在线播| 日韩一区精品字幕| 精品国产免费人成电影在线观看四季| 中文字幕亚洲一区二区av在线| 91蜜桃婷婷狠狠久久综合9色| 一区二区三区国产| 欧美嫩在线观看| 久久精品国产澳门| 国产日韩欧美综合在线| 91农村精品一区二区在线| 亚洲成人tv网| 欧美电影精品一区二区| 成人美女视频在线看| 亚洲一区二区视频在线观看| 欧美一区二区三区在线观看视频 | 亚洲国产精华液网站w| 91啪亚洲精品| 热久久国产精品| 欧美国产日韩在线观看| 91黄色激情网站| 青青草国产精品亚洲专区无| 国产日产欧美一区| 91视频免费观看| 麻豆久久久久久久| 国产精品美女久久久久久久久| 欧美在线一区二区| 国产一区二区三区在线观看精品 | 色88888久久久久久影院野外| 午夜免费久久看| 久久亚洲精品国产精品紫薇| 91啪亚洲精品| 久久草av在线| 亚洲精品亚洲人成人网在线播放| 日韩区在线观看| 99热这里都是精品| 美国av一区二区| 综合色天天鬼久久鬼色| 日韩欧美国产wwwww| 91麻豆免费看| 久久av资源网| 亚洲黄色性网站| 2020国产精品自拍| 国产视频亚洲色图| 欧美系列亚洲系列| 国产不卡免费视频| 天天色 色综合| 国产精品国产自产拍在线| 91精品国产91久久综合桃花| 94色蜜桃网一区二区三区| 久久丁香综合五月国产三级网站| 一区二区三区美女视频| 久久综合九色综合97婷婷女人| 欧美系列一区二区| www.亚洲在线| 久久91精品久久久久久秒播| 亚洲五月六月丁香激情| 国产精品美女www爽爽爽| 日韩欧美国产综合在线一区二区三区| 色拍拍在线精品视频8848| 国产伦精品一区二区三区在线观看| 亚洲地区一二三色| 亚洲欧美另类小说| 国产欧美视频一区二区三区| 91麻豆精品国产自产在线观看一区| 成人av午夜影院| 国产精品资源网| 日韩av午夜在线观看| 一区二区三区在线免费观看| 欧美国产精品一区二区| 精品成人一区二区| 欧美福利视频导航| 欧美日韩一级片网站| 91小视频免费观看| k8久久久一区二区三区| 国产高清一区日本| 国产专区欧美精品| 蜜臀国产一区二区三区在线播放| 亚洲专区一二三| 亚洲人成网站在线| 国产欧美日韩精品一区| 26uuu久久综合| 26uuu精品一区二区三区四区在线| 日韩午夜激情电影| 91精品国产综合久久精品性色| 91福利国产精品| 91免费观看视频在线| 91在线免费播放| 91影院在线观看| 色94色欧美sute亚洲线路二| 91老师片黄在线观看| 99久久精品免费| 91丝袜国产在线播放| 99久久伊人精品| 99视频在线精品| 91玉足脚交白嫩脚丫在线播放| 91丨porny丨户外露出| 91捆绑美女网站| 欧美午夜精品一区| 欧美日韩国产首页| 欧美肥妇bbw| 日韩欧美亚洲一区二区| 久久综合九色综合欧美亚洲| 久久午夜电影网| 国产精品日产欧美久久久久| 国产精品久久久久久久裸模| 国产精品第一页第二页第三页| 中文字幕视频一区| 亚洲男女一区二区三区| 一二三四区精品视频| 婷婷开心激情综合| 秋霞av亚洲一区二区三| 精品一区二区三区免费观看| 国产v日产∨综合v精品视频| 波多野结衣在线一区| 日本高清无吗v一区| 欧美日本在线一区| 精品国产91乱码一区二区三区|