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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bsppllcmm.c

?? 這是單板上DPRAM的驅動程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
       }
      else
       {
  /*      	S_Cabinet_Cnt=0;*/
  /*     	LocalWorkCtl(0);*/
       	SET_BIT(S_SiPendRegister,IRQ_PLL_PENDING_BIT,32)
        return;
       }  	   	
    }        
 }
 
 if((IsSelfMaster()==0)&&(CheckFCK()==0))
 {
    SET_BIT(S_SiPendRegister,IRQ_PLL_PENDING_BIT,32)
    return;  
 }
 
if(Syn60_Flag>0)   
 {       
	switch(CurStatus){
		case SDS_PLL_LOSE:
		case SDS_PLL_FASTC:
		case SDS_PLL_SLOWC:
		    			break;		
		case SDS_PLL_LOCK:
			if(++cmmpllcnt<Lock_Cnt){
			    SET_BIT(S_SiPendRegister,IRQ_PLL_PENDING_BIT,32)
		        return;
		    }
		    else{
		    	cmmpllcnt=0;
		    	
		    }
		    break;
	}
	
	Prev_PhD=PhD;
    tmp =*((ULONG *)PLLBase);
    tmp &= 0xffe00000L;
    tmp >>=21;
    if(tmp>=1625)
    {
     SET_BIT(S_SiPendRegister,IRQ_PLL_PENDING_BIT,32)	
     return; 
    } 
    PhD=(tmp>813)?(long)tmp-1625:(long)tmp;
    PD=PhD-Prev_PhD; 
    if(PD>813)
        PD-=1625;
    else if(PD<-813)
        PD+=1625;
    if(CurStatus==SDS_PLL_LOSE){
        PhBreaks=0;
    }
    else{
        if(PD>100 || PD<-100){
            PhBreaks++;
            ((PLLData *)pDataBuf)->chops++;
            
        } /* to skip the breaks in phase changing*/
        else{
            PhBreaks=0;
        }
        if(PhBreaks>0 && PhBreaks<4){    
            Prev_PhD=PhD;
            SET_BIT(S_SiPendRegister,IRQ_PLL_PENDING_BIT,32)
            return;
        }
    }/*if(CurStatus==SDS_PLL_LOSE)*/
   
/*調整初始相位*/
    if(ms_flag==1)
     {
       InitPhD=PhD;
       Prev_PhD=PhD;
       ms_flag=0;
       SET_BIT(S_SiPendRegister,IRQ_PLL_PENDING_BIT,32)
       return;	
     }    
        
    switch(CurStatus)
    {
     case SDS_PLL_LOSE:
        if (++entries>Power_Up_Time/TS1){
            CurStatus=SDS_PLL_FASTC;
            entries=0;
            for(i=0;i<5;i++)BufPhase[i]=PhD;    
            InitPhD=PhD;
            if(InitPhD>=0 && InitPhD<90)
               InitPhD+=50;
            else if(InitPhD<0 && InitPhD>-90)
               InitPhD-=50;
#ifdef PLLDEBUG
            INITPHD=InitPhD; 
#endif
        } 
        break;          
    case SDS_PLL_FASTC:
        PhD_InitPhD=PhD-InitPhD;
        dtao1=TS1/tao1_1*PhD_InitPhD+KD1*PD;
        tmp=(long)Prev_CW+(long)(dtao1);
        if(tmp<2459 &&tmp>=0)CW=tmp;
        entries++;
/*-----------------------------------------*/
#ifdef PLLDEBUG 
        runinfo[curpos].phdinfo=PhD;
        runinfo[curpos].statusinfo=CurStatus;
        runinfo[curpos].cwinfo=CW;
        runinfo[curpos].to_tgt=PhD_InitPhD;
        if(++curpos>=maxinfos)curpos-=maxinfos; 
#endif
/*-----------------------------------------*/
        if(PhD_InitPhD<Th1 &&PhD_InitPhD>-Th1)
            inband++; 
        else 
            inband=0;  
        if(inband>=Chk1){ 
            CurStatus= SDS_PLL_SLOWC;
            ((PLLData *)pDataBuf)->fast_tmout=SDA_NONE;
            entries=0;
            inband=0;
        }
        if(entries>PLL_F_T_CNT)
            ((PLLData *)pDataBuf)->fast_tmout= SDA_PLL_FASTC_TIMEOUT; 
            InitPhD=PhD;
            if(InitPhD>=0 && InitPhD<90)
               InitPhD+=50;
            else if(InitPhD<0 && InitPhD>-90)
            InitPhD-=50;
            
        break;
    case SDS_PLL_SLOWC:
        entries++;
        PhD_InitPhD=PhD-InitPhD;
        dtao1=TS2/tao1_2*PhD_InitPhD+KD2*PD;
        tmp=(long)Prev_CW+(long)(dtao1);
        if(tmp<2459 &&tmp>=0)CW=tmp;
/*-----------------------------------------*/
#ifdef PLLDEBUG    
        runinfo[curpos].phdinfo=PhD;
        runinfo[curpos].cwinfo=CW;
        runinfo[curpos].statusinfo=CurStatus; 
        runinfo[curpos].to_tgt=PhD_InitPhD;
        if(++curpos>=maxinfos)curpos-=maxinfos; 
#endif
/*-----------------------------------------*/
        if(PhD_InitPhD>Th1 ||PhD_InitPhD<-Th1){
            outband++;  
            inband=0;
        }
        else if(PhD_InitPhD<Th2 &&PhD_InitPhD>-Th2)
            inband++;
        else
            inband=0;
        if(outband>Chk15){
            entries=0; 
            CurStatus=SDS_PLL_FASTC; 
            entries=0; 
            ((PLLData *)pDataBuf)->slow_tmout=SDA_NONE;
            inband=0;
            outband=0;
        }    
        if(inband>=Chk2){ 
            CurStatus= SDS_PLL_LOCK;
            entries=0; 
            ((PLLData *)pDataBuf)->slow_tmout=SDA_NONE;
            inband=0;outband=0;
            outband1=0; 
        }    
        if(entries>(PLL_S_T_CNT))
            ((PLLData *)pDataBuf)->slow_tmout=SDA_PLL_SLOWC_TIMEOUT; 
        break;
     case SDS_PLL_LOCK:
       /*if(GetBTS_NO()!=0)  
        {
          SET_PB_BIT(26,1);
          SET_BIT(S_SiPendRegister,IRQ_PLL_PENDING_BIT,32)
          return;	
        }*/
        if(Syn60_Flag==2)
             {
               LocalWorkCtl(1);	
               Syn60_Flag=1;	
             }
        /*entries++; */
        PhD_InitPhD=PhD-InitPhD;

        if(PhD_InitPhD>Th4 ||PhD_InitPhD<-Th4)
            outband++; 
        else{ 
            outband=0;
                       
            dtao1=(TS3/tao1_3*PhD_InitPhD+KD3*PD);
            if(dtao1>=1) dtao1=1;
            else if(dtao1<=-1) dtao1=-1;
            else dtao1=0;
            tmp=(long)Prev_CW+(long)dtao1;
            if(tmp<2459 &&tmp>=0)
                CW=tmp;   
            }
        if(PhD_InitPhD>Th3 || PhD_InitPhD<-Th3)
            outband1++;
        else
            outband1=0;                
/*-----------------------------------------*/
#ifdef PLLDEBUG    
        runinfo[curpos].phdinfo=PhD;
        runinfo[curpos].cwinfo=CW;
        runinfo[curpos].statusinfo=CurStatus; 
        runinfo[curpos].to_tgt=PhD_InitPhD;
        if(++curpos>=maxinfos)curpos-=maxinfos; 
#endif
/*-----------------------------------------*/
        if(outband>Chk4){ 
            CurStatus= SDS_PLL_FASTC; 
            entries=0; 
            inband=0;
            outband=0;
            outband1=0;
            InitPhD=PhD;
            if(Syn60_Flag==1)
             {
               LocalWorkCtl(1);	
               Syn60_Flag=2;	
             }
            
            if(InitPhD>=0 && InitPhD<90)
                InitPhD+=50;
            else if(InitPhD<0 && InitPhD>-90)
                InitPhD-=50;
#ifdef PLLDEBUG
            INITPHD=InitPhD; 
#endif
        } 
    
        if(outband1>Chk3){ 
            CurStatus= SDS_PLL_SLOWC; 
            entries=0; 
            inband=0;
            outband=0;
            outband1=0;
            if(Syn60_Flag==1)
             {
               LocalWorkCtl(1);	
               Syn60_Flag=2;	
             }
        }   
/*-----------------------------------------*/
#ifdef PLLDEBUG
        runinfo[curpos].phdinfo=PhD;
        runinfo[curpos].statusinfo=CurStatus;
        runinfo[curpos].cwinfo=CW;
        runinfo[curpos].to_tgt=PhD_InitPhD;
        if(++curpos>=maxinfos)curpos-=maxinfos; 
#endif
/*-----------------------------------------*/
    }/*end of switch*/

    switch(CurStatus){
        case SDS_PLL_LOSE:
            SET_PLL_LOSE_STATE
            break;
        case SDS_PLL_FASTC:
        	SET_PLL_FAST_STATE
            break;
        case SDS_PLL_SLOWC:
        	SET_PLL_SLOW_STATE
            break;
        case SDS_PLL_LOCK:
        	SET_PLL_LOCK_STATE
        	break;
    }/*end of switch*/

    ((PLLData *)pDataBuf)->status=CurStatus;
    /* 向D/A寫控制字*/
    if(CurStatus!=SDS_PLL_LOSE && Prev_CW!=CW){
    	
#if REVNUM ==1    	/*------------------by dmw------------*/
    	CWreverse=0;
     	mask=0x1L;
     	for(i=1;i<13;i++){
        	CWreverse|=(CW&mask)<<(33-2*i);
        	mask<<=1;
       	}
    	CWreverse&=0xfff00000;
    	*((volatile ULONG*)DABase)=CWreverse;
    	
#elif REVNUM==2
    	CWreverse=CW<<20;
    	*((volatile ULONG*)DABase)=CWreverse;     	
#elif (REVNUM==3 || REVNUM==4)
	    CWreverse=CW<<4;
    	*((volatile USHORT*)DABase)=(USHORT)CWreverse;     	 
#endif            /*------------------by dmw------------*/

    }
    Prev_CW=CW; 
    Prev_PhD=PhD; 
    SET_BIT(S_SiPendRegister,IRQ_PLL_PENDING_BIT,32)
}  
else if(Syn60_Flag==0)
 {
     int_counter=int_counter+1 ;
   if(int_counter>=100)
   {
       int_counter=0;
       sec_counter =(sec_counter+1) ;
   }
       
    switch(CurStatus)
    {
     case SDS_PLL_LOSE:
        if (++entries>Power_Up_Time/TS1)
         {   
          entries=0;
          CurStatus=SDS_PLL_FASTC;
            
          lock_alarm=0;
          sec_counter=0;
          
          /*flash_val=ReadDAFromFlash();
          if(flash_val<0||flash_val>V_OUT_MAX) flash_val=1229;*/
          CurDA=flash_val; 
          Locked_DAC_Val=flash_val;
          old_ph_diff=flash_val;
          #ifdef PLLDEBUG
            INITPHD=flash_val; 
          #endif 
          MAX_CurDA=0;
          MIN_CurDA=3000;
          Slave_Init=0;
 
          Frombegin=1;
          array_pr=0;
          for(m=0;m<=399;m++) DA[m]=0;
         }
          ((PLLData *)pDataBuf)->status=CurStatus;
     break;        
     case SDS_PLL_FASTC:
        tmp =*((ULONG *)PLLBase);
        tmp &= 0xffe00000L;
        tmp >>=21;
        if(tmp>=1625)
        {
          SET_BIT(S_SiPendRegister,IRQ_PLL_PENDING_BIT,32)	
          return;
        }   
        LoopFilter((long)tmp,CurDA,Frombegin);
        Frombegin=0;
      /*  entries++;*/
        if(en_able==-1)
	 {
	  en_able=0;
	  if(lock_alarm==0xaa)
	    {
	     CurDA=Locked_DAC_Val;
	     OutputDA((ULONG)CurDA);
            }
	  else 
	    {
	     CurDA=Frval;
	     OutputDA((ULONG)CurDA);
	    }			      			                
		/*-----------------------------------------*/
#ifdef PLLDEBUG 
        runinfo[curpos].phdinfo=NewPhase;
        runinfo[curpos].statusinfo=CurStatus;
        runinfo[curpos].cwinfo=CurDA;
        runinfo[curpos].to_tgt=FreV;
        if(++curpos>=maxinfos)curpos-=maxinfos; 
#endif
       /*-----------------------------------------*/	                
	 }  
/*判斷是否已經鎖定*/	   	
       if((sec_counter>=240)&&(sec_counter%240==0))
	{    
	 if(lock_alarm!=0xaa)
	  {
	   CurDA=Frval;			        
           if(abs(MAX_CurDA-MIN_CurDA)<=45)
	      {
	       /*flash_val=ReadDAFromFlash();
               if(flash_val<0||flash_val>V_OUT_MAX) flash_val=1229;	*/
	       if(abs(CurDA-flash_val)<380) 
	        {      
	         CurStatus=SDS_PLL_LOCK;
	         lock_alarm=0x0;
		 sec_counter=0;		
    	         }
    			                       
              }
          }       			                      
     	 MAX_CurDA=0;
         MIN_CurDA=3000;                                                             
        }
 /*判斷有無偏離基準*/                           
       if(sec_counter>=1800)
        {       
     	 Frombegin=1;
         sec_counter=0;
         CurDA=Frval;
         /*flash_val=ReadDAFromFlash();
         if(flash_val<0||flash_val>V_OUT_MAX) flash_val=1229;*/
         if(abs(CurDA-flash_val)>380)
           {
            lock_alarm=0xaa;
            for(m=0;m<=399;m++) DA[m]=0;
            array_pr=0; 
           }
          else 			       	     	              			       	     	 
     	   lock_alarm=0x0;     			       	     	          			     			                 
     	}

     ((PLLData *)pDataBuf)->status=CurStatus;     	
     break;
     case SDS_PLL_LOCK:
      tmp =*((ULONG *)PLLBase);
      tmp =*((ULONG *)PLLBase);
      tmp &= 0xffe00000L;
      tmp >>=21;
      if(tmp>=1625)
      {
        SET_BIT(S_SiPendRegister,IRQ_PLL_PENDING_BIT,32)	
        return;
      }   
      LoopFilter((long)tmp,CurDA,Frombegin);
      Frombegin=0;
      if( en_able==-1) 
       {			
       	en_able=0;   	                                      
        CurDA=Frval;
	if(abs(CurDA-old_ph_diff)<380)  
	 {
          OutputDA((ULONG)CurDA);
          LoseLockCount=0;
          /*-----------------------------------------*/
#ifdef PLLDEBUG 
        runinfo[curpos].phdinfo=NewPhase;
        runinfo[curpos].statusinfo=CurStatus;
        runinfo[curpos].cwinfo=CurDA;
        runinfo[curpos].to_tgt=FreV;
        if(++curpos>=maxinfos)curpos-=maxinfos; 
#endif
         /*-----------------------------------------*/ 		
         }
        else
         {
          LoseLockCount++;
	   if(LoseLockCount>LoseLockThreshold)
	    {
	     CurStatus=SDS_PLL_FASTC;
	     lock_alarm=0xaa;
            
             LoseLockCount=0;
             KeepFast=0;
             KeepSlow=0;
	     sec_counter=0; 
	     MAX_CurDA=0;
             MIN_CurDA=3000; 
             for(m=0;m<=399;m++) DA[m]=0;
             array_pr=0;        
	     break;
	    }
	 }
       }     
  /*10分鐘產生可以寫入FLASH中的只值*/     
      if((sec_counter>=600)&&(sec_counter%600==0))
       {     			       
        if(abs(MAX_CurDA-MIN_CurDA)<=8)
	 {	   			                       		                        
       	  Locked_DAC_Val=(MAX_CurDA+MIN_CurDA)/2;
	 }	
	MAX_CurDA=0;
        MIN_CurDA=3000;   
       }
/*產生前一小時鎖相值*/                                         	 			
       if(sec_counter>=3600)
        {
          sec_counter=0;
          if(Cr>=390)
           {
          /*  CurDA=(Addr_Da/Cr);*/        
            old_ph_diff=(Addr_Da/Cr);  
           }           
        } 
 
    ((PLLData *)pDataBuf)->status=CurStatus;
    break;
    }/*end of switch*/

    SET_BIT(S_SiPendRegister,IRQ_PLL_PENDING_BIT,32)
    return; 
 }   
    
}


char *PLLBspInit(int DEV, char *FreeMemPtr)
{
    InstallSD(DEV,PLLRead,NULL,PLLCntrl,FreeMemPtr);
    PLLInit(FreeMemPtr); 
    FreeMemPtr += sizeof(PLLData);
    memcpy(FreeMemPtr,"**PLLDat",8);
    FreeMemPtr += 8;
    return FreeMemPtr;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久婷婷国产综合国色天香| 色综合久久99| 欧美电影免费观看高清完整版在线| 日韩专区欧美专区| 欧美一区二区三区在线看| 美国十次综合导航| 精品成人a区在线观看| 国产馆精品极品| 国产精品麻豆久久久| 91香蕉视频污在线| 午夜精品福利在线| 久久欧美一区二区| 99综合影院在线| 亚洲国产婷婷综合在线精品| 欧美一区中文字幕| 粉嫩av一区二区三区| 亚洲一级在线观看| 精品久久99ma| 91久久香蕉国产日韩欧美9色| 日韩福利视频网| 国产日韩三级在线| 欧美在线观看视频一区二区三区| 蜜桃av一区二区在线观看 | 一本久道久久综合中文字幕| 亚洲国产成人av| 久久久久久久综合| 色婷婷久久久综合中文字幕| 麻豆精品视频在线观看| 综合中文字幕亚洲| 538在线一区二区精品国产| 国产精品99久久久久久有的能看| 樱花草国产18久久久久| 精品美女在线观看| 91麻豆高清视频| 国产一区二区三区免费播放| 亚洲电影中文字幕在线观看| 欧美精彩视频一区二区三区| 欧美一级片在线观看| av午夜精品一区二区三区| 免费高清视频精品| 夜夜嗨av一区二区三区中文字幕| 国产婷婷一区二区| 欧美激情一区在线观看| 欧美日韩综合一区| 国产成人高清在线| 久久电影网站中文字幕| 亚洲成av人**亚洲成av**| 中文字幕 久热精品 视频在线 | 日韩一卡二卡三卡四卡| 96av麻豆蜜桃一区二区| 国产精品18久久久| 精品伊人久久久久7777人| 一区二区久久久久久| 国产精品久久久久久久裸模| 亚洲精品一线二线三线无人区| 欧美猛男超大videosgay| a4yy欧美一区二区三区| 国产福利精品一区| 狠狠网亚洲精品| 蜜臀久久99精品久久久画质超高清| 一区二区成人在线视频| 日韩一区欧美一区| 亚洲欧洲精品天堂一级| 国产精品久久久久国产精品日日| 欧美精品一区二区三区在线 | 日韩久久久久久| 欧美久久久一区| 精品视频一区三区九区| 91久久精品一区二区| 91亚洲精品乱码久久久久久蜜桃| 国产v日产∨综合v精品视频| 国产福利精品一区二区| 国产成人免费在线视频| 国产麻豆精品视频| 国产精品77777| 岛国精品一区二区| 岛国av在线一区| 不卡在线视频中文字幕| 成年人国产精品| 色妹子一区二区| 欧美综合一区二区| 欧美挠脚心视频网站| 欧美一级欧美三级在线观看| 精品久久久久久久久久久久包黑料| 精品国产91乱码一区二区三区| 日韩欧美国产精品| 国产亚洲欧美激情| 国产精品系列在线| 亚洲人吸女人奶水| 亚洲一区成人在线| 日韩中文字幕91| 欧美aaa在线| 国产久卡久卡久卡久卡视频精品| 国产美女主播视频一区| 9人人澡人人爽人人精品| 色悠久久久久综合欧美99| 欧美日韩国产免费一区二区| 日韩一区二区精品在线观看| 久久综合一区二区| 亚洲mv在线观看| 国内精品国产三级国产a久久| 成人免费视频一区| 欧美丝袜第三区| 日韩色视频在线观看| 国产欧美一区二区精品久导航| 亚洲欧美激情插| 日韩av电影免费观看高清完整版 | 亚洲精品一区二区三区福利| 国产欧美视频在线观看| 一区二区三国产精华液| 久久精品国产免费| 91蜜桃免费观看视频| 日韩视频在线永久播放| 国产精品免费看片| 日韩成人免费看| a亚洲天堂av| 777午夜精品视频在线播放| 久久久美女毛片| 夜夜揉揉日日人人青青一国产精品| 免费观看日韩av| 91久久久免费一区二区| 久久久综合精品| 午夜精品一区二区三区免费视频| 国产激情一区二区三区四区| 欧美日韩不卡一区二区| 中文字幕亚洲一区二区av在线 | 99久久国产免费看| 欧美成人一区二区| 亚洲一区二区三区影院| 国产suv精品一区二区883| 欧美精品久久久久久久久老牛影院| 国产午夜精品福利| 免费在线一区观看| 欧美亚洲国产一区二区三区 | 在线视频观看一区| 国产亚洲女人久久久久毛片| 亚洲不卡av一区二区三区| 99国产精品国产精品毛片| 日韩欧美一区二区三区在线| 亚洲小说春色综合另类电影| 97久久超碰国产精品| 国产喂奶挤奶一区二区三区| 精品亚洲成a人| 欧美老人xxxx18| 亚洲无人区一区| 日本精品视频一区二区三区| 日本一区二区三区四区 | 国产精品乱码人人做人人爱| 精品在线你懂的| 777午夜精品免费视频| 一区2区3区在线看| 色综合久久久久综合99| 国产精品乱人伦| 岛国精品在线播放| 欧美国产乱子伦| 国产黑丝在线一区二区三区| 亚洲欧美日韩人成在线播放| 成人高清免费观看| 欧美激情一区三区| 成人一区二区三区| 国产婷婷精品av在线| 国产成人精品亚洲日本在线桃色| 精品国产1区二区| 国产一区二区精品久久91| 久久综合九色综合欧美亚洲| 国产在线视频精品一区| 久久久99免费| 成人丝袜高跟foot| 中文字幕在线播放不卡一区| 91丨国产丨九色丨pron| 中文字幕综合网| 在线精品亚洲一区二区不卡| 亚洲成av人**亚洲成av**| 欧美色爱综合网| 丝袜美腿亚洲色图| 日韩欧美国产三级电影视频| 国产一区二区在线视频| 国产日韩影视精品| 91丨九色porny丨蝌蚪| 亚洲国产精品久久久久婷婷884 | 久久九九影视网| 成人国产精品免费| 亚洲黄网站在线观看| 欧美精品日韩一区| 久久99精品国产麻豆婷婷| 久久精品欧美一区二区三区麻豆 | 香蕉成人伊视频在线观看| 91精品黄色片免费大全| 国内成人精品2018免费看| 国产女人aaa级久久久级| 色婷婷亚洲精品| 蜜臀久久久久久久| 欧美国产一区二区| 色噜噜狠狠成人网p站| 热久久一区二区| 中文字幕av在线一区二区三区| 在线观看亚洲精品视频| 奇米在线7777在线精品| 中文字幕第一页久久| 欧美喷潮久久久xxxxx|