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

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

?? timer.c

?? 三星給予ARM920T內(nèi)核的S3C2413的demo版本
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
//=============================================================================
// File Name : Timer.c
// Function  : S3C2410 Watch-Dog and Timer
// Program   : Shin, On Pil (SOP)
// Date      : May 21, 2002
// Version   : 0.0
// History
//   0.0 : Programming start (February 27,2002) -> SOP
//=============================================================================
//=============================================================================
// File Name : Timer.c
// Function  : S3C24a0 Watch-Dog and PWM Timer
// Program   : Oh woo seok
// Date      : April 14, 2003
// Version   : 0.0
// History
//   0.0 : Programming start (April 14, 2003) 
//=============================================================================

#include <stdio.h>
#include <string.h>

#include "option.h"
#include "2413addr.h"
#include "system.h"
//#include "2413lib.h"
#include "timer.h"
#include "def.h"
#include "PLL.h"



static volatile int dmaDone;
volatile int variable0,variable1,variable2,variable3,variable4;


//=========================================================================


//=========================================================================


void * timer_func[][2]=
{
	(void *)Test_TimerInt,          	        "Timer Interrupt        ",
	(void *)Test_Timer,                    		"Timer Tout             ",
	(void *)Test_TimerDma,  	                "Timer DMA              ",
	0,0
};


void Ch10_PwmTimer_test(void)
{
	int i;
	
	printf("Menu of Timer function\n");
	// Wait until memory stick is inserted.
	
	while(1) {
		TimerSubMessage();
		printf("\nSelect(-1 to exit): ");
		i = GetIntNum();
		//printf("IN:%d.\n\n", i);
		if(i==-1) break;
		
		if(i>=0 && (i<(sizeof(timer_func)/3)) ) 
	    	( (void (*)(void)) (timer_func[i][0]) )();	// execute selected function.
	}

}

void TimerSubMessage(void)
{
	int i;
	
	
	i=0;	
	printf("\n\n");
	while(1)
	{   //display menu
	    printf("%2d:%s",i,timer_func[i][1]);
	    i++;
	    if((int)(timer_func[i][0])==0)
	    {
			printf("\n");
			break;
	    }
	    if((i%4)==0) printf("\n");
	}
}


//=========================================================================
//      SMDK24a0 TOUT configuration(GPCON_U:0x44800000)
//  GP23=PWM_TOUT3,GP22=PWM_TOUT2,GP21=PWM_TOUT1,GP20=PWM_TOUT0,
//  GP19=PWM_ECLK 

//
//Timer input clock frequency = PCLK/{prescaler value+1}/{divider value}
//{prescaler value} = 0 ~ 255   , {divider value} = 2,4,8,16
//
//  PWM Timer PWM_TOUT0/1/2/3/ECLK Test - 24a0
//=========================================================================

#define GPCONU_ABAIL (TRUE)  // if wanna GPGONU set "FALSE"

void Test_Timer(void)
{
    int save_GPB_CON, save_GPB_DAT;
    int Deadzone_test_flag= 1, PWM50_test_flag=0, Inverton_test_flag=0;
	int key;
	
    
    printf("[ PWM_TOUT 0,1,2,3 Test ]\n\n");    
    //printf("= Current Port Setting List =\n");
    //printf("rGPCON_U = 0x%8x,   rGPDAT = 0x%8x,   rGPUP= 0x%8x \n" ,rGPCON_U,rGPDAT,rGPUP);

    save_GPB_CON= rGPBCON;
    save_GPB_DAT= rGPBDAT;	
   
	

    // controls PCLK into PWMTIMER block 0 :disable, 1:enable
    //rCLKCON = rCLKCON & ~(0x100) | 0x100;
//    rPCLKCON = (1<<16);
    // IO port pull up control register : 0=enable, 1=disable   
    //rGPPU= rGPPU & ~(0x00f80000) | 0x00f80000;

    // IO port configuration register relative to TIMER
    rGPBCON=0x2aa;   //GPI0,GPI1,GPI2,GPI3,GPI4,
    
    // check the buffer writing, correctly
    //printf("= Changed Port Setting List =\n");    
    //printf("rGPCON_U = 0x%8x,   rGPDAT = 0x%8x,   rGPUP= 0x%8x \n" ,rGPCON_L,rGPDAT,rGPPU);
    	
LABEL:

    printf("[ Select Timer Clock ]\n");
    printf("[  prescaler0 | prescaler1 | divider\n");
    printf("a.       0                 0             1/2 \n");
    printf("b.       0                 0             1/4 \n");
    printf("c.       0                 0             1/8 \n");
    printf("d.       0                 0             1/16 \n");
//    printf("e.       0                 0             TCLK0 \n"); // not implemented in GPIO
    printf("f.     255              255           1/2 \n");
    printf("g.    255              255           1/4 \n");
    printf("h.    255              255           1/8 \n"); 
    printf("i.     255              255           1/16 \n");
//    printf("j.     255              255           TCLK1 \n"); // // not implemented in GPIO	
    printf("k.       0                 0             1/2 (Dead-zone value=40 \n");
    printf("l.       0                 0             1/2 (PWM 50%% \n");
    printf("m.     0                 0             1/2 (Invert on.off \n");
		
    printf("\nSelect the function to test : ");
    key = Uart_getc();
    printf("%c\n\n",key);    

    switch(key)
    {
	 case 'a'://All Interrupt, MUX 4 ~ 0 : 1/2 //Dead zone=1,Prescaler1=0,Prescaler0=0	
            rTCFG0 = rTCFG0 & ~(0xffffff) | 0x10000;     
            rTCFG1 = 0x0; 
            break;
	 case 'b'://All Interrupt, MUX 4 ~ 0 : 1/4 //Dead zone=1,Prescaler1=0,Prescaler0=0	
            rTCFG0 = rTCFG0 & ~(0xffffff) | 0x10000;     
            rTCFG1 = 0x1111; 
            break;
	 case 'c'://All Interrupt, MUX 4 ~ 0 : 1/8 //Dead zone=1,Prescaler1=0,Prescaler0=0	
            rTCFG0 = rTCFG0 & ~(0xffffff) | 0x10000;     
            rTCFG1 = 0x2222; 
            break;
	 case 'd'://All Interrupt, MUX 4 ~ 0 : 1/16 //Dead zone=1,Prescaler1=0,Prescaler0=0	
            rTCFG0 = rTCFG0 & ~(0xffffff) | 0x10000;     
            rTCFG1 = 0x3333; 
            break;
//	 case 'e'://All Interrupt, MUX 4 ~ 0 : TCLK0 //Dead zone=1,Prescaler1=0,Prescaler0=0	
//            rTCFG0 = rTCFG0 & ~(0xffffff) | 0x10000;     
//            rTCFG1 = 0x4444; 
//            break;
	 case 'f'://All Interrupt, MUX 4 ~ 0 : 1/2 //Dead zone=1,Prescaler1=255,Prescaler0=255	
            rTCFG0 = rTCFG0 & ~(0xffffff) | 0x1ffff;     
            rTCFG1 = 0x0; 
            break;
	 case 'g'://All Interrupt, MUX 4 ~ 0 : 1/4 //Dead zone=1,Prescaler1=255,Prescaler0=255	
            rTCFG0 = rTCFG0 & ~(0xffffff) | 0x1ffff;     
            rTCFG1 = 0x1111; 
            break;
	 case 'h'://All Interrupt, MUX 4 ~ 0 : 1/8 //Dead zone=1,Prescaler1=255,Prescaler0=255	
            rTCFG0 = rTCFG0 & ~(0xffffff) | 0x1ffff;     
            rTCFG1 = 0x2222; 
            break;
	 case 'i'://All Interrupt, MUX 4 ~ 0 : 1/16 //Dead zone=1,Prescaler1=255,Prescaler0=255	
            rTCFG0 = rTCFG0 & ~(0xffffff) | 0x1ffff;     
            rTCFG1 = 0x3333; 
            break;
//	case 'j'://All Interrupt, MUX 4 ~ 0 : TCLK1 //Dead zone=1,Prescaler1=255,Prescaler0=255	
//            rTCFG0 = rTCFG0 & ~(0xffffff) | 0x1ffff;     
//            rTCFG1 = 0x4444; 
//            break;
	 case 'k'://All Interrupt, MUX 1 ~ 0 : 1/2 //Dead zone=40,Prescaler1=0,Prescaler0=0	
            rTCFG0 = rTCFG0 & ~(0xffffff) | 0x280000;     
            rTCFG1 = 0x0; 
            Deadzone_test_flag = 1;			
            break;
	 case 'l'://All Interrupt, MUX 1 ~ 0 : 1/2 //Dead zone=1,Prescaler1=0,Prescaler0=0, PWM50%	
            rTCFG0 = rTCFG0 & ~(0xffffff) | 0x280000;     
            rTCFG1 = 0x0; 
            PWM50_test_flag = 1;			
            break;
	 case 'm'://All Interrupt, MUX 4 ~ 0 : 1/2 //Dead zone=1,Prescaler1=0,Prescaler0=0, Invert ON
            rTCFG0 = rTCFG0 & ~(0xffffff) | 0x280000;     
            rTCFG1 = 0x0; 
            Inverton_test_flag = 1;			
            break;
  			
        default:
	    rTCON   = 0x0;		

		rGPBCON=save_GPB_CON ;
        rGPBDAT=save_GPB_DAT;	
       
		return;
    }

////////////////////////////////////////////////////////////////////////////////////  
// Step1>> write the rTCNTBn and rTCMPBn
//(1/(PCLK/(Prescaler+1)/divider) * count(Max 65535) = Timer clock (Frequency)
////////////////////////////////////////////////////////////////////////////////////  

    rTCNTB0 = rTCNTB0 & ~(0xffff) | 2000;       //(1/(50MHz/69/2))  *  2000 =  5.5200 msec (181.159  Hz)
                                                //(1/(50.7MHz/69/2))*  2000 =  5.4437 msec (183.698  Hz)
                                                //(1/(50MHz/1/2))   *  2000 =  0.0800 msec ( 12.500 KHz)
                                                //(1/(50.7MHz/1/2)) *  2000 =  0.0788 msec ( 12.690 KHz)
    rTCNTB1 = rTCNTB1 & ~(0xffff) | 4000;       //(0.0000027600003) *  4000 = 11.0400 msec ( 90.579  Hz)
                                                //(0.0000027218935) *  4000 = 10.8875 msec ( 91.848  Hz)
                                                //(0.00000004)      *  4000 =  0.1600 msec (  6.250 KHz)
                                                //(0.0000000394477) *  4000 =  0.1577 msec (  6.337 KHz)
    rTCNTB2 = rTCNTB2 & ~(0xffff) | 5000;       //(0.0000027600003) *  5000 = 13.8000 msec ( 72.463  Hz)
                                                //(0.0000027218935) *  5000 = 13.6094 msec ( 73.478  Hz)
                                                //(0.00000004)      *  5000 =  0.2000 msec (  5.000 KHz)
                                                //(0.0000000394477) *  5000 =  0.1972 msec (  5.070 KHz)
    rTCNTB3 = rTCNTB3 & ~(0xffff) | 10000;      //(0.0000027600003) * 10000 = 27.6000 msec ( 36.231  Hz)
                                                //(0.0000027218935) * 10000 = 27.2189 msec ( 36.739  Hz)
                                                //(0.00000004)      * 10000 =  0.4000 msec (  2.500 KHz)
                                                //(0.0000000394477) * 10000 =  0.3944 msec (  2.535 KHz)


   //printf("rTCNTB0=%d |rTCNTB1=%d |rTCNTB2=%d | rTCNTB3=%d \n",rTCNTB0,rTCNTB1,rTCNTB2,rTCNTB3);

   if(PWM50_test_flag ==1 ){
       rTCMPB0 =  2000;     rTCMPB1 =  4000;    rTCMPB2 =  5000;    rTCMPB3 = 10000;
//	   rTCMPB0 =  4000;     rTCMPB1 =  8000;    rTCMPB2 =  5000;    rTCMPB3 = 10000;
	PWM50_test_flag = 0;
   }
   else{ 
//       rTCMPB0 =  2000 - 1000;    rTCMPB1 =  4000 - 2000;    rTCMPB2 =  5000 - 2500;    rTCMPB3 = 10000-5000;
	   rTCMPB0 = 1000;    rTCMPB1 =1000;    rTCMPB2 =1000;    rTCMPB3 = 1000;
   }

   //printf("rTCMPB0=%d |rTCMPB1=%d |rTCMPB2=%d | rTCMPB3=%d \n",rTCMPB0,rTCMPB1,rTCMPB2,rTCMPB3);


////////////////////////////////////////////////////////////////////////////////////
//	Step2.>> Set the manual update bit[TCON] of the corresponging timer. it is recommended to configure
//	   the inverter on/off bit
////////////////////////////////////////////////////////////////////////////////////

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线播放一区二区三区| 国产精品国产自产拍高清av王其| 精品国产露脸精彩对白| 久久精品亚洲精品国产欧美| √…a在线天堂一区| 婷婷夜色潮精品综合在线| 国内精品伊人久久久久影院对白| 成人一区在线看| 欧美日韩专区在线| 精品处破学生在线二十三| 亚洲视频一区二区在线| 美洲天堂一区二卡三卡四卡视频| 国产大陆亚洲精品国产| 欧美亚洲国产bt| 久久亚洲一区二区三区明星换脸| 国产精品久久久久四虎| 青青草原综合久久大伊人精品| 懂色av一区二区三区免费看| 欧美日韩电影在线播放| 国产日韩欧美精品在线| 性做久久久久久免费观看欧美| 国产在线看一区| 91传媒视频在线播放| 久久综合色8888| 亚洲成va人在线观看| 高清在线不卡av| 欧美妇女性影城| 中文字幕在线播放不卡一区| 琪琪一区二区三区| 色综合天天做天天爱| 精品国产一区二区精华| 亚洲精品中文字幕在线观看| 九九**精品视频免费播放| 91日韩精品一区| 久久免费国产精品| 婷婷久久综合九色综合绿巨人 | 在线中文字幕不卡| 欧美精品一区二区在线观看| 亚洲制服丝袜一区| 成人激情视频网站| 26uuu国产日韩综合| 日韩精品一二区| 91福利视频在线| 国产精品入口麻豆原神| 麻豆国产一区二区| 欧美日韩日日骚| 亚洲精品中文字幕在线观看| 国产乱码精品一区二区三| 欧美一级生活片| 亚洲自拍偷拍麻豆| 91小视频在线观看| 国产欧美精品一区| 精品在线免费视频| 91精品国产欧美日韩| 亚洲已满18点击进入久久| 99re视频这里只有精品| 国产精品色在线观看| 国模套图日韩精品一区二区| 91精品国产综合久久久久久久久久 | 亚洲在线观看免费视频| 成人永久看片免费视频天堂| 国产无遮挡一区二区三区毛片日本| 另类综合日韩欧美亚洲| 4438x成人网最大色成网站| 亚洲电影你懂得| 欧美日本在线一区| 日日摸夜夜添夜夜添国产精品 | 性久久久久久久久| 91国模大尺度私拍在线视频| 亚洲精品福利视频网站| 99久久婷婷国产精品综合| 国产精品美女久久久久久2018| 国产盗摄一区二区| 中文字幕乱码日本亚洲一区二区| 国产精品一卡二卡在线观看| 久久一区二区三区国产精品| 国产麻豆精品95视频| 国产亚洲一二三区| 国产精品99久久久久久似苏梦涵 | 狠狠色狠狠色合久久伊人| 欧美一级日韩免费不卡| 日韩精品电影在线| 欧美精选一区二区| 亚洲精品欧美激情| 欧美最新大片在线看| 亚洲欧美日韩小说| 色av综合在线| 亚洲黄色在线视频| 色婷婷综合久久久久中文一区二区| 国产日韩欧美激情| 国产精品996| 中文字幕亚洲区| 91在线视频在线| 最新国产の精品合集bt伙计| 99热这里都是精品| 亚洲综合一二三区| 欧美视频一区二| 日韩国产精品久久| 精品日韩在线观看| 国产大陆亚洲精品国产| 国产精品国产精品国产专区不片| 色综合久久综合中文综合网| 亚洲精品videosex极品| 欧美三级韩国三级日本一级| 综合自拍亚洲综合图不卡区| 欧美日韩极品在线观看一区| 亚洲国产乱码最新视频| 色偷偷久久一区二区三区| 日韩黄色小视频| 精品国产成人系列| 国v精品久久久网| 伊人性伊人情综合网| 欧美色网一区二区| 琪琪久久久久日韩精品| 中文字幕第一区二区| 91美女福利视频| 一个色妞综合视频在线观看| 7777精品伊人久久久大香线蕉最新版 | 国产九色精品成人porny| 美女mm1313爽爽久久久蜜臀| 精品国产成人在线影院| 成人手机电影网| 亚洲国产一区二区在线播放| 日韩欧美国产电影| 国产激情一区二区三区四区| 国产精品高潮呻吟| 欧美三级欧美一级| 美女被吸乳得到大胸91| 亚洲欧美日韩国产综合在线| 91精品国产综合久久蜜臀| 国产成人av网站| 亚洲一区二区三区四区五区黄| 欧美成人性福生活免费看| www.性欧美| 七七婷婷婷婷精品国产| 国产精品美女久久久久高潮| 精品视频一区三区九区| 国产精品一品视频| 亚洲国产人成综合网站| 国产精品美女www爽爽爽| 欧美电影在哪看比较好| 成人精品国产一区二区4080| 亚洲福利国产精品| 国产亚洲短视频| 欧美一区二区精品久久911| 国产一区二区三区日韩| 亚洲国产精品嫩草影院| 国产亚洲欧美激情| 欧美一级二级在线观看| www.成人网.com| 久久精品国产一区二区三| 亚洲国产精品ⅴa在线观看| 欧美高清视频一二三区| 色综合久久久久| 国产精品自拍毛片| 日韩中文字幕区一区有砖一区 | 欧美国产欧美综合| 欧美日韩国产一二三| 丰满放荡岳乱妇91ww| 毛片av中文字幕一区二区| 国产精品无圣光一区二区| 欧美www视频| 欧美日韩成人在线一区| 成人av在线影院| 久久黄色级2电影| 亚洲小说春色综合另类电影| 国产亚洲一区二区三区四区| 欧美xxxxx牲另类人与| 欧美日韩一区不卡| 99国产精品久久久| 成人精品视频一区二区三区 | a4yy欧美一区二区三区| 毛片一区二区三区| 亚洲成人激情综合网| 99精品国产热久久91蜜凸| 狠狠色丁香九九婷婷综合五月| 午夜一区二区三区在线观看| 日韩毛片一二三区| 国产女人aaa级久久久级| 欧美日本在线播放| 69堂成人精品免费视频| 欧美羞羞免费网站| 日本高清无吗v一区| 99久久婷婷国产| a美女胸又www黄视频久久| 99综合影院在线| 国产成人精品1024| 国产一区二区三区免费观看| 麻豆免费精品视频| 日韩电影免费在线观看网站| 日本va欧美va瓶| 婷婷丁香激情综合| 美女精品自拍一二三四| 人人超碰91尤物精品国产| 精品一区二区三区免费毛片爱| 久久精品国产久精国产爱| 麻豆精品一区二区| 久久99最新地址| 国产成人精品午夜视频免费| 国产精品99久久久久|