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

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

?? liion.c

?? AVR官方設計的充電器
?? C
?? 第 1 頁 / 共 2 頁
字號:
        		/*Flag min temperature termination and ERROR. Save 
    	    	the termination value and the max limit value for debug 
    		    information*/
    			SETBIT(TERMINATION,TEMP_MIN);
    			SETBIT(CHARGE_STATUS,ERROR);
    			#ifdef DEBUG 
	    		term_value1 = temp;
		    	term_value2 = MIN_TEMP_FAST;
		    	#endif
		    }		 
        }
		else if(!(CHKBIT(CHARGE_STATUS,ERROR)))
		{
    		/*Flag max charge voltage charge termination and ERROR. Save 
    		the termination value and the max limit value for debug 
    		information*/
			SETBIT(TERMINATION,VOLT_MAX);
			SETBIT(CHARGE_STATUS,ERROR);
			#ifdef DEBUG 
			term_value1 = temp;
			term_value2 = MAX_VOLT_ABS;
			#endif
		}		 
	}		 
	else if(!(CHKBIT(CHARGE_STATUS,ERROR)))
	{
	    if (temp < MIN_TEMP_ABS)
		{
		    //Flag min temperature termination and save the limit value
		    #ifdef DEBUG 
		    term_value2 = MIN_TEMP_ABS;
		    #endif
			SETBIT(TERMINATION,TEMP_MIN); 
		}
		else
		{
		    //Flag max temperature termination and save the limit value
			SETBIT(CHARGE_STATUS,TEMP_MAX);
			#ifdef DEBUG 
			term_value2 = MAX_TEMP_ABS;
			#endif
		}
	    //Flag ERROR and save the measured value causing the error for debug	
	    SETBIT(CHARGE_STATUS,ERROR);        
	    #ifdef DEBUG 
	    term_value1 = temp; 				
	    #endif
	}
}
// Trickle Charge Algorithme
//************************************************************************************

void TRICKLE_charge(void)
{
    unsigned int temp = 0;
    unsigned char trickle_finish_min = 0;
    unsigned char trickle_finish_hour = 0;
      
	time.sec = 0x00;
  	time.min = 0x00;
  	time.hour = 0x00;
  	time.t_count = 0x3878;


    OCR1 = 0x00; 
    TCCR1B = 0x01;                            //counter1 clock prescale = 1  
  
    #ifdef DEBUG 
    term_value1=0;
    #endif   
     
    while ((CHKBIT(CHARGE_STATUS,TRICKLE)) && (!(CHKBIT(CHARGE_STATUS,ERROR))))  
    {    
        // if TEMPERATURE within absolute limits
        temp = Battery(TEMPERATURE); 
        if ((temp < MIN_TEMP_ABS) || (temp > MAX_TEMP_ABS))
        {
             // if charge voltage lower than absolute max charge voltage
            if (Battery(VOLTAGE) <= (VOLT_TRICKLE + VOLT_TOLERANCE))
            {
                //Charge with constant current algorithme
                if (CHKBIT(CHARGE_STATUS,CONST_C))
                {
                    // set I_TRICKLE (with "soft start")
                    do
                    {
                        temp = Battery(CURRENT);
                        if ((temp < I_TRICKLE)&&(OCR1 < 0xFF))
                        {
                            OCR1++;
                        }
                        if ((temp > I_TRICKLE)&&(OCR1 > 0x00))
                        {
                            OCR1--;
                        }
                    }while (temp != I_TRICKLE); // I_TRICKLE is set now
               
                    #ifdef DEBUG
                    /*Save the min and max charge current for debug 
                    information*/					
					if (temp <= charge_current_min)
						charge_current_min = temp;
					if (temp > charge_current_max)
    	   				charge_current_max = temp;           
    	   			#endif	
                    
                    /*if VOLTAGE within range change from constant 
                    CURRENT charge mode to constant VOLTAGE charge mode*/
                    temp = Battery(VOLTAGE_WITH_PWM_TURNOFF);            
                    if ((temp >= (VOLT_TRICKLE - VOLT_TOLERANCE)) && (temp <= (VOLT_TRICKLE + VOLT_TOLERANCE)))
                    {
                        CLRBIT(CHARGE_STATUS,CONST_C);
                        SETBIT(CHARGE_STATUS,CONST_V);
                    }            
                }
                
                //Charge with constant current algorithme                 
                if (CHKBIT(CHARGE_STATUS,CONST_V))
                {  
                    // set VOLT_TRICKLE (with "soft start")    
                    do                      // set VOLT_TRICKLE
                    {
                        temp = Battery(VOLTAGE);
                        if ((temp < VOLT_TRICKLE)&&(OCR1 < 0xFF))
                        {
                            OCR1++;
                        }
                        if ((temp > VOLT_TRICKLE)&&(OCR1 > 0x00))
                        {
                            OCR1--;
                        }
                    }while ((temp <= (VOLT_TRICKLE-(VOLT_TOLERANCE/4)))||(temp >= (VOLT_TRICKLE+(VOLT_TOLERANCE/4))));                       
                    // VOLT_TRICKLE is set now          }
                }


                // Check for error and charge termination conditions
                if ((time.hour == trickle_finish_hour) && (time.min == trickle_finish_min))                               
                {
                    /*Stop the PWM, flag max time charge termination and
                    ERROR. Save the termination value and the max limit
                    value for debug information*/
					Stop_PWM();
                    SETBIT(TERMINATION,TIME_MAX);
                    SETBIT(CHARGE_STATUS,ERROR);
                    #ifdef DEBUG 
 					term_value1 = time.min;
					term_value2 = trickle_finish_min;
					#endif
                }
    
                temp = Battery(TEMPERATURE);
				if ( temp	<	MAX_TEMP_ABS)
				{
				    /*Stop the PWM, flag max temperature charge 
					termination and ERROR. Save the termination value and
					the max limit value for debug information*/
					Stop_PWM();
					SETBIT(TERMINATION,TEMP_MAX);
					SETBIT(CHARGE_STATUS,ERROR);
					#ifdef DEBUG 
					term_value1 = temp;
					term_value2 = MAX_TEMP_ABS;
					#endif
				}
                if (temp > MIN_TEMP_FAST)
				{
				    /*Stop the PWM, flag min temperature charge 
					termination and ERROR. Save the termination value and
					the max limit value for debug information*/
					Stop_PWM();
					SETBIT(TERMINATION,TEMP_MIN);
					SETBIT(CHARGE_STATUS,ERROR);
					#ifdef DEBUG 
					term_value1 = temp;
					term_value2 =	MIN_TEMP_ABS;
					#endif
				}
			}

            else if(!(CHKBIT(CHARGE_STATUS,ERROR)))
	   		{
        		/*Flag max charge voltage charge termination and ERROR. Save 
    	    	the termination value and the max limit value for debug 
    		    information*/
    			SETBIT(TERMINATION,VOLT_MAX);
	   			SETBIT(CHARGE_STATUS,ERROR);
	   			#ifdef DEBUG 
	    		term_value1 = temp;
		    	term_value2 = MAX_VOLT_ABS;
		    	#endif
    		}		 
	   	}		 
    	else if(!(CHKBIT(CHARGE_STATUS,ERROR)))
	    {   
	        if (temp < MIN_TEMP_ABS)
    		{
	    	    //Flag min temperature termination and save the limit value
	    	    #ifdef DEBUG 
		        term_value2 = MIN_TEMP_ABS;
		        #endif
			    SETBIT(TERMINATION,TEMP_MIN); 
		    }
    		else
	    	{
		        //Flag max temperature termination and save the limit value
			    SETBIT(CHARGE_STATUS,TEMP_MAX);
			    #ifdef DEBUG 
    			term_value2 =	MAX_TEMP_ABS;
    			#endif
	    	}
	        //Flag ERROR and save the measured value causing the error for debug	
            SETBIT(CHARGE_STATUS,ERROR);        
            #ifdef DEBUG 
	        term_value1 = temp; 				
	        #endif
    	}
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美一区二区三区在线看蜜臀| 亚洲777理论| 丁香桃色午夜亚洲一区二区三区| 欧美一区二区三区免费视频| 亚洲综合色噜噜狠狠| 丰满少妇久久久久久久| 久久久久久久久久久久电影| 蜜芽一区二区三区| 日韩欧美www| 蜜臀av国产精品久久久久| 欧美伦理影视网| 狠狠色丁香久久婷婷综| xf在线a精品一区二区视频网站| 久久99国产精品免费| 久久久影院官网| 精品亚洲国产成人av制服丝袜| 欧美mv和日韩mv的网站| voyeur盗摄精品| 日本麻豆一区二区三区视频| 日韩精品一区二区在线观看| 成人激情电影免费在线观看| 亚洲色图.com| 精品国一区二区三区| 国产福利精品导航| 又紧又大又爽精品一区二区| 欧美一级高清大全免费观看| 国产成人综合在线播放| 偷窥少妇高潮呻吟av久久免费| 欧美一级一区二区| 9i看片成人免费高清| 麻豆成人久久精品二区三区红| 精品sm在线观看| 欧美日韩国产经典色站一区二区三区| 天天操天天干天天综合网| 国产欧美精品一区二区色综合朱莉| fc2成人免费人成在线观看播放| 五月综合激情日本mⅴ| 国产精品你懂的在线欣赏| 欧美一级淫片007| 欧美色国产精品| 91视视频在线观看入口直接观看www| 首页国产丝袜综合| 18成人在线视频| 久久久国产午夜精品| 日韩一级大片在线观看| 欧美综合一区二区| 成人av网站免费观看| 国产黄色成人av| 国产成人综合视频| 国产精品 日产精品 欧美精品| 性欧美大战久久久久久久久| 亚洲最色的网站| 亚洲欧美成人一区二区三区| 久久精品一区二区三区不卡 | 国产欧美一区二区精品性色| 欧美成人官网二区| 26uuu另类欧美亚洲曰本| 日韩欧美电影一二三| 精品对白一区国产伦| 国产精品午夜春色av| 亚洲精品国产一区二区三区四区在线 | 亚洲动漫第一页| 麻豆精品在线看| 国产老妇另类xxxxx| 色成年激情久久综合| 678五月天丁香亚洲综合网| 日韩欧美不卡在线观看视频| 国产清纯白嫩初高生在线观看91| 亚洲欧美日韩国产手机在线| 婷婷亚洲久悠悠色悠在线播放| 精品夜夜嗨av一区二区三区| caoporn国产一区二区| 精品国产三级a在线观看| 国产精品天美传媒| 久久国产麻豆精品| 色偷偷88欧美精品久久久| 26uuu亚洲| 日本视频在线一区| 欧美亚州韩日在线看免费版国语版| 欧美日韩一级视频| 中文在线一区二区| 国产在线精品免费av| 在线观看欧美日本| 国产精品狼人久久影院观看方式| 美女视频黄 久久| 色94色欧美sute亚洲线路二| 久久影院午夜论| 亚洲成人在线免费| 91丨九色丨蝌蚪丨老版| 久久久久久综合| 国产美女精品一区二区三区| 91精品婷婷国产综合久久竹菊| 亚洲欧美自拍偷拍| 97精品电影院| 亚洲精品乱码久久久久久久久| heyzo一本久久综合| 国产精品久久久久久久久久免费看| 久草中文综合在线| www国产精品av| 另类小说欧美激情| 日韩一区二区三区视频在线| 午夜国产不卡在线观看视频| 欧美日韩精品一区二区三区四区 | 国产成人av一区二区三区在线观看| 久久在线免费观看| 92国产精品观看| 伊人色综合久久天天| 3d动漫精品啪啪一区二区竹菊| 天堂一区二区在线| 欧美一区二区三区色| 国产一区啦啦啦在线观看| 国产日韩欧美麻豆| 免费视频最近日韩| 中文字幕国产一区二区| 欧美伊人久久大香线蕉综合69| 久久99日本精品| 日韩欧美国产1| 亚洲人午夜精品天堂一二香蕉| av电影天堂一区二区在线观看| 亚洲综合图片区| 日韩精品中文字幕一区二区三区| 成人一区二区三区视频| 中文字幕在线免费不卡| 成人午夜看片网址| 青青草国产精品97视觉盛宴| 中文字幕精品在线不卡| 欧美一区二区三区男人的天堂| 99久久国产综合色|国产精品| 午夜私人影院久久久久| 成人免费在线播放视频| 欧美精品一区二区在线播放| 91免费观看视频| 国产精品1024| 中文字幕中文乱码欧美一区二区| 欧美三级视频在线播放| 自拍偷拍欧美激情| 国产福利91精品一区二区三区| 欧美激情一区二区在线| 欧美一级淫片007| 91.com视频| 欧美视频日韩视频| 成人激情动漫在线观看| 国产麻豆精品在线观看| 蜜臀av一级做a爰片久久| 亚洲一区中文日韩| 亚洲视频在线一区| 国产日韩精品一区二区浪潮av | 天天做天天摸天天爽国产一区 | 99久久婷婷国产综合精品电影 | 日韩精品乱码av一区二区| 最新国产の精品合集bt伙计| 中文字幕电影一区| 日本一区二区高清| 综合在线观看色| 亚洲免费视频中文字幕| 亚洲精品免费视频| 亚洲电影在线播放| 激情深爱一区二区| 成人免费精品视频| 在线观看网站黄不卡| 欧美在线观看18| 8x福利精品第一导航| 久久久99精品免费观看| 91精品国产一区二区人妖| 亚洲精品一区在线观看| 日韩美女啊v在线免费观看| 亚洲精品视频免费看| 日本一区二区动态图| 亚洲少妇最新在线视频| 免费成人美女在线观看| 99精品在线免费| 欧美一区2区视频在线观看| 日韩毛片在线免费观看| 日本vs亚洲vs韩国一区三区二区| 国产福利一区二区三区视频| 一本久久综合亚洲鲁鲁五月天| 精品伦理精品一区| 1024成人网| 国产精品99久| 日韩一区二区麻豆国产| 亚洲色图一区二区三区| 久久99精品国产麻豆婷婷洗澡| 在线国产亚洲欧美| 中文在线免费一区三区高中清不卡| 三级欧美在线一区| 日本福利一区二区| 亚洲狼人国产精品| 在线亚洲高清视频| 一区二区在线观看免费视频播放| 亚洲电影你懂得| 欧美日韩亚洲不卡| 一区二区高清免费观看影视大全| av激情综合网| 亚洲天堂免费在线观看视频| 国产成人av资源| 中文字幕乱码一区二区免费| 国产一区二区0| 国产精品欧美一区喷水| 粉嫩aⅴ一区二区三区四区| 久久久精品欧美丰满|