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

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

?? timer.c

?? arm7 實驗箱 關(guān)于步進(jìn)直流電機(jī)驅(qū)動程序和步進(jìn)電機(jī)的一些應(yīng)用
?? C
字號:
/****************************************Copyright (c)**************************************************/
/**                                
;**                                 西南科技大學(xué)計算機(jī)科學(xué)學(xué)院
;**                                   
;**                                http://www.cs.suswt.edu.cn
;**            
;**             日期:  2007/10/10 
;**             描述:  西南科技大學(xué)計算機(jī)學(xué)院CS-II型實驗板定時器驅(qū)動工作程序,包含定時器0,定時器1  
;**             作者:
;**
;**--------------timer.c文件
;**------------------------------------------------------------------------------------------------------*/

/**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#define _TIMER_C_
#ifdef  _TIMER_C_

/************************************************
 *          Header File                         * 
 ***********************************************/
 #include"config.h"
 #include"led.h"
 #include"key.h"
 #include"motor.h"
/************************************************
 *          Globale variable					*
 ***********************************************/
 uint32 div0 = 0;
 uint32 div1 = 3;
 uint32 overflow = 0;
 extern uint8 motor_step_run_flag;
 extern uint8 motor_step_speed;
 extern uint8 motor_step_speed_flag;
 extern uint8 key_up_flag;
 extern uint8 motor_step_direction;
 
 /**--------------------------------------------------------------------------**/
 //                            定時器0
 
 #define TIMER0_ENABLE
 #ifdef  TIMER0_ENABLE
/*******************************************************************************
Function Name:void __irq IRQ_Timer0(void)    								   *
Description  : Timer0的中斷服務(wù)函數(shù),需要利用Timer0進(jìn)行中斷的程序都可以放在這個*
			   函數(shù)中                                                          *
               ads1.2 規(guī)定,在定義中斷服務(wù)函數(shù)時,必須加入關(guān)鍵字__irq保證函數(shù)返*
			   回時會切換處理器模式										       *
			   需要注意的是:注意在退出中斷服務(wù)程序時,要清零相應(yīng)外設(shè)的中斷標(biāo)志*
			   以及VICVectAddr,為響應(yīng)下一次中斷做好準(zhǔn)備                       *      	
*******************************************************************************/
void __irq IRQTimer0(void)
 { 	
 	if(motor_step_speed_flag == FALSE)
 	{ 
	 	 switch(KEYScan())
	    {
	    	case 0x00:motor_step_run_flag = TRUE;break;
	    	case 0x08:motor_step_run_flag = FALSE;break;
	    	case 0x01:motor_step_speed_flag = TRUE;break;
	    	case 0x09:motor_step_speed_flag = FALSE;break; 
	    	case 0x02:motor_step_direction = CLOCKWISE;break;
	    	case 0x0a:motor_step_direction = ANTICLOCKWISE;break;
	    	default:break;   	
	    }
	}
    
    
    /* 上面添加需要定時器中斷的代碼*/
 	T0IR=0X01;                                     //清除中斷
    VICSoftIntClear=0x00000010;
    VICVectAddr=0x00;                              //清除地址
 } 
 
/*******************************************************************************
Function Name:	 void Timer0_InterruptSet(void)          					   *
Description  :對中斷向量的設(shè)置,包括中斷類型,中斷優(yōu)先級,中斷服務(wù)地址         *
					  中斷使能。											   *	
*******************************************************************************/ 
void TIMER0InterruptSet(void)
 {
 	VICIntSelect &= 0xffffffef;                    //第4、5位分別代表定時計數(shù)器0、1  設(shè)置中斷類型
 	VICVectCntl0 = 0x24;                           //為中斷源分配向量IRQ的優(yōu)先級 ,VICVectCntl n,n值越小優(yōu)先級越高,0<=n<=15
 	                                               //0010 0100 中斷源序號為4  代表計數(shù)器0中斷
 	VICVectAddr0 = (int)IRQTimer0;                 //向量地址寄存器  為該中斷優(yōu)先級設(shè)置服務(wù)程序入口地址
 	VICIntEnable = 0x00000010; 	                   //中斷使能 允許相應(yīng)中斷源產(chǎn)生中斷
 }
/*******************************************************************************
Function Name:  void Timer0_Init(void)          							   *
Description  :	定時器計數(shù)器0初始化設(shè)置,包括預(yù)分頻值,匹配模式,啟動復(fù)位等。  *												   *						
*******************************************************************************/
 void TIMER0Init(void)                             //另外一種寫法 void Timer1_Init(uint32 Div,uint32 Ovf)
 {
    T0TC = 0;                                      
 	T0PR = div0;                                   //設(shè)置預(yù)分頻值  定時器計數(shù)時鐘頻率 Fpclk/(PR+1)
 	T0MCR = 0x03;                                  //設(shè)置匹配模式 匹配后復(fù)位T0TC,并產(chǎn)生中斷標(biāo)志  
 	T0MR0 = Fpclk/1000;                                 //設(shè)置匹配值  可以理解為計數(shù)器益出值 設(shè)置1ms匹配值
 	T0TCR = 0x03;                                  //啟動并復(fù)位
 	TIMER0InterruptSet();
 }
/*******************************************************************************
Function Name:	void Timer0_Start(void)										   *
Description  :	定時器計數(shù)器0啟動   				        				   *	
*******************************************************************************/
void TIMER0Start(void)
{
	T0TCR = 0x01;	                               //定時器使能,相當(dāng)與定時計數(shù)器的開關(guān)
}
#endif



/**--------------------------------------------------------------------------**/
 //                               定時器1

#define TIMER1_ENABLE
#ifdef TIMER1_ENABLE

/*******************************************************************************
Function Name:void __irq IRQ_Timer1(void)    								   *
Description  : Timer1的中斷服務(wù)函數(shù),需要利用Timer1進(jìn)行中斷的程序都可以放在這個*
			   函數(shù)中                                                          *
               ads1.2 規(guī)定,在定義中斷服務(wù)函數(shù)時,必須加入關(guān)鍵字__irq保證函數(shù)返*
			   回時會切換處理器模式										       *
			   需要注意的是:注意在退出中斷服務(wù)程序時,要清零相應(yīng)外設(shè)的中斷標(biāo)志*
			   以及VICVectAddr,為響應(yīng)下一次中斷做好準(zhǔn)備                       *      	
*******************************************************************************/
void __irq IRQTimer1(void)
 { 	
 	if(motor_step_speed_flag==TRUE)
    {
    	switch(KEYScan())
    	{
    		
    		case 0x03:motor_step_speed = 0x00;break;
    		case 0x04:motor_step_speed = 0x01;break;
    		case 0x05:motor_step_speed = 0x02;break;
    		case 0x06:motor_step_speed = 0x03;break;
    		case 0x07:motor_step_speed = 0x04;break;
    		
    		case 0x09:motor_step_speed_flag = FALSE;break;
    		
    		case 0x0b:motor_step_speed = 0x05;break;
    		case 0x0c:motor_step_speed = 0x06;break;
    		case 0x0d:motor_step_speed = 0x07;break;
    		case 0x0e:motor_step_speed = 0x08;break;
    		case 0x0f:motor_step_speed = 0x09;break;
    		default:break;    		
    	}
    }
 	LEDScan(); 
 	LEDPrint(motor_step_speed); 
 	if(motor_step_run_flag == TRUE)
    {
    	MOTORStepRun(motor_step_speed,motor_step_direction);
    } 
   
    
    /* 上面添加需要定時器中斷的代碼*/
 	T1IR=0X01;                                     //清除中斷
    VICSoftIntClear=0x00000010;
    VICVectAddr=0x00;                              //清除地址
 } 
 
/*******************************************************************************
Function Name:	 void Timer1_InterruptSet(void)          					   *
Description  :對中斷向量的設(shè)置,包括中斷類型,中斷優(yōu)先級,中斷服務(wù)地址中斷使能 *	
*******************************************************************************/ 
void TIMER1InterruptSet(void)
 {
 	VICIntSelect &= 0xffffffdf;                    //第4、5位分別代表定時計數(shù)器0、1  設(shè)置中斷類型
 	VICVectCntl1 = 0x25;                           //為中斷源分配向量IRQ的優(yōu)先級 ,VICVectCntl n,n值越小優(yōu)先級越高,0<=n<=15
 	                                               //0010 0100 中斷源序號為4  代表計數(shù)器0中斷
 	VICVectAddr1 = (int)IRQTimer1;                 //向量地址寄存器  為該中斷優(yōu)先級設(shè)置服務(wù)程序入口地址
 	VICIntEnable = 0x00000020; 	                   //中斷使能 允許相應(yīng)中斷源產(chǎn)生中斷
 }
 
/*******************************************************************************
Function Name:  void Timer1_Init(void)          							   *
Description  :	定時器計數(shù)器1初始化設(shè)置,包括預(yù)分頻值,匹配模式,啟動復(fù)位等。  *												   *						
*******************************************************************************/
 void TIMER1Init(void)                             //另外一種寫法 void Timer1_Init(uint32 Div,uint32 Ovf)
 {
    T1TC = 0;                                      
 	T1PR = div1;                                   //設(shè)置預(yù)分頻值  定時器計數(shù)時鐘頻率 Fpclk/(PR+1)
 	T1MCR = 0x03;                                  //設(shè)置匹配模式 匹配后復(fù)位T0TC,并產(chǎn)生中斷標(biāo)志  
 	T1MR0 = Fpclk/1000;                            //設(shè)置匹配值  可以理解為計數(shù)器益出值 設(shè)置1ms匹配值
 	T1TCR = 0x03;                                  //啟動并復(fù)位
 	TIMER1InterruptSet();
 }
 
/*******************************************************************************
Function Name:	void Timer0_Start(void)										   *
Description :	定時器計數(shù)器0啟動   		        						   *	
*******************************************************************************/
void TIMER1Start(void)
{
	T1TCR = 0x01;	                               //定時器使能,相當(dāng)與定時計數(shù)器的開關(guān)
}
#endif


#endif
/*****************************************************************************
 *                         End of Entire File                                *
 ****************************************************************************/


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产激情一区二区三区四区 | 老司机精品视频在线| 26uuu久久综合| 91免费看视频| 国产成人综合在线| 视频一区在线播放| 亚洲精品五月天| 国产亚洲成年网址在线观看| 91精品视频网| 欧美在线观看一区| 99精品视频一区二区三区| 九九久久精品视频| 日韩成人一区二区| 亚洲风情在线资源站| 亚洲少妇屁股交4| 亚洲国产精品高清| 欧美精品一区二区三区高清aⅴ | 激情欧美一区二区| 亚洲成人av免费| 亚洲女人的天堂| 日韩高清不卡一区二区| 亚洲欧美偷拍卡通变态| 中文字幕精品一区二区三区精品| 精品对白一区国产伦| 欧美精品在欧美一区二区少妇| 一本色道亚洲精品aⅴ| 成人app软件下载大全免费| 国产剧情一区在线| 久久国产成人午夜av影院| 日韩成人精品视频| 亚洲成人一区二区| 亚洲一区精品在线| 亚洲一二三专区| 亚洲国产日韩精品| 亚洲国产精品欧美一二99| 亚洲精品伦理在线| 一区二区三区四区五区视频在线观看 | 国产精品成人免费| 国产蜜臀97一区二区三区| 欧美精品一区二区三| 精品国产乱子伦一区| 欧美精品一区二区三区视频| 精品国产一区久久| 久久久另类综合| 亚洲精品一区二区三区福利| 国产亚洲一本大道中文在线| 久久久久久影视| 国产农村妇女毛片精品久久麻豆 | 欧美成人艳星乳罩| 日韩一区二区在线观看| 91精品国产黑色紧身裤美女| 制服丝袜av成人在线看| 日韩欧美一区二区视频| 精品999在线播放| 中文在线一区二区| 亚洲欧洲日本在线| 亚洲一区二区三区四区不卡| 肉色丝袜一区二区| 精品一区二区在线看| 国产精品系列在线观看| 99久精品国产| 在线成人免费观看| 精品国产乱码久久| 国产精品女主播在线观看| 亚洲激情图片小说视频| 丝袜美腿高跟呻吟高潮一区| 老司机免费视频一区二区三区| 国产黄人亚洲片| 色婷婷一区二区| 日韩一级成人av| 国产精品欧美久久久久无广告| 亚洲一区二区综合| 精久久久久久久久久久| 99麻豆久久久国产精品免费优播| 欧美综合在线视频| 精品久久久久久无| ...xxx性欧美| 免费国产亚洲视频| 成人av中文字幕| 欧美片网站yy| 亚洲国产精品精华液ab| 亚洲成人综合在线| 国产成人免费xxxxxxxx| 欧美视频三区在线播放| 亚洲精品在线免费播放| 亚洲一区二区三区在线| 国产一区二区毛片| 欧美视频精品在线| 欧美激情艳妇裸体舞| 亚洲va韩国va欧美va精品| 国产成人在线免费| 欧美日韩午夜精品| 国产女同互慰高潮91漫画| 视频一区在线视频| 色狠狠一区二区三区香蕉| 精品久久久久久久久久久久久久久 | 国产一区二区h| 91福利在线观看| 久久久www成人免费毛片麻豆 | 香港成人在线视频| 成人福利视频在线看| 日韩欧美黄色影院| 亚洲主播在线观看| k8久久久一区二区三区| www精品美女久久久tv| 午夜欧美大尺度福利影院在线看| 成人av在线观| 久久精品亚洲麻豆av一区二区| 日韩精品一级中文字幕精品视频免费观看| 成人免费的视频| 欧美成人三级在线| 日日噜噜夜夜狠狠视频欧美人| av不卡免费在线观看| 国产日产欧美一区二区视频| 麻豆精品精品国产自在97香蕉| 欧美性猛交xxxx乱大交退制版| 国产精品成人在线观看 | 欧美日韩色综合| 亚洲美女免费在线| 99国产精品久久久久久久久久久 | 99视频精品全部免费在线| 欧美v日韩v国产v| 美腿丝袜在线亚洲一区| 欧美肥胖老妇做爰| 五月天亚洲精品| 欧美撒尿777hd撒尿| 一区二区三区高清在线| 色婷婷精品大在线视频| 亚洲欧美日韩国产另类专区| av动漫一区二区| 最新久久zyz资源站| voyeur盗摄精品| 亚洲欧美综合另类在线卡通| 97久久超碰国产精品电影| 国产精品久久久久精k8| 不卡高清视频专区| 最好看的中文字幕久久| 色综合久久66| 亚洲一区二区影院| 欧美日韩国产三级| 日本 国产 欧美色综合| 亚洲人成在线观看一区二区| 91片黄在线观看| 亚洲资源在线观看| 91麻豆精品国产91久久久更新时间 | 亚洲老妇xxxxxx| 在线免费不卡电影| 天堂蜜桃一区二区三区| 日韩精品在线一区| 国产麻豆精品theporn| 欧美激情中文字幕| av一区二区三区| 亚洲成人一区二区| 精品理论电影在线观看 | 色综合天天综合网天天狠天天| 日韩av一区二区三区四区| 制服丝袜激情欧洲亚洲| 精品亚洲国产成人av制服丝袜| 久久亚洲影视婷婷| 97精品久久久久中文字幕| 一区二区久久久久久| 91精品婷婷国产综合久久性色| 黄色资源网久久资源365| 国产精品乱子久久久久| 色哟哟国产精品| 日本麻豆一区二区三区视频| 久久欧美一区二区| 91浏览器在线视频| 日本麻豆一区二区三区视频| 国产欧美1区2区3区| 在线看不卡av| 精品一区二区三区免费视频| 国产精品丝袜久久久久久app| 在线观看三级视频欧美| 久久精品999| 国产精品电影一区二区| 4hu四虎永久在线影院成人| 国产精品自在欧美一区| 亚洲欧洲制服丝袜| 精品剧情v国产在线观看在线| 99久久婷婷国产综合精品电影| 午夜精品福利一区二区三区蜜桃| 久久久久久97三级| 精品视频123区在线观看| 国产精品一区二区你懂的| 亚洲国产你懂的| 欧美国产欧美亚州国产日韩mv天天看完整 | 337p日本欧洲亚洲大胆精品| 一本色道综合亚洲| 国产精品一色哟哟哟| 性欧美疯狂xxxxbbbb| 中文字幕av免费专区久久| 欧美日韩综合色| 成人免费观看男女羞羞视频| 开心九九激情九九欧美日韩精美视频电影 | 在线日韩国产精品| 国产精品中文字幕日韩精品| 婷婷亚洲久悠悠色悠在线播放| 国产精品天美传媒沈樵| 日韩女优av电影在线观看|