Index: inc/halGpio.h
===================================================================
--- /YC3121_SDK/fw/hal/jinghongling/inc/halGpio.h	(revision 742)
+++ /YC3121_SDK/fw/hal/jinghongling/inc/halGpio.h	(working copy)
@@ -15,7 +15,7 @@
 #define __HAL_GPIO_H__
 
 #include "halCommon.h"
-
+#include "yc_adc.h"
 #ifdef __cplusplus
     extern "C" {
 #endif
Index: inc/halPwm.h
===================================================================
--- /YC3121_SDK/fw/hal/jinghongling/inc/halPwm.h	(revision 742)
+++ /YC3121_SDK/fw/hal/jinghongling/inc/halPwm.h	(working copy)
@@ -22,14 +22,26 @@
 
 typedef enum
 {
+  	HAL_PWM0 = 0,
     HAL_PWM1 = 1,
-    HAL_PWM2,
+    HAL_PWM2 = 2,
+		HAL_PWM3 = 3,
+		HAL_PWM4 = 4,
+		HAL_PWM5 = 5,
+		HAL_PWM6 = 6,
+		HAL_PWM7 = 7
 }E_PWM_INDEX;    //结构体/类声明
 
 typedef struct
 {
+	  u16 unPwm0Max;
     u16 unPwm1Max;
     u16 unPwm2Max;
+	  u16 unPwm3Max;
+    u16 unPwm4Max;
+    u16 unPwm5Max;
+    u16 unPwm6Max;
+    u16 unPwm7Max;
 }T_PWM_MAX_MS; // PWM执行的时间，一个变量对应一组PWM(单位10ms)
 
 //全局函数声明
Index: inc/halTimer.h
===================================================================
--- /YC3121_SDK/fw/hal/jinghongling/inc/halTimer.h	(revision 742)
+++ /YC3121_SDK/fw/hal/jinghongling/inc/halTimer.h	(working copy)
@@ -14,7 +14,8 @@
 #define __HALTIME_H__
 
 #include "halCommon.h"       // 引用当前工程中的头文件
-
+#include "yc_timer.h"
+#include  "misc.h"
 #ifdef __cplusplus
     extern "C" {
 #endif
Index: make/YC3121_hal.uvoptx
===================================================================
--- /YC3121_SDK/fw/hal/jinghongling/make/YC3121_hal.uvoptx	(revision 742)
+++ /YC3121_SDK/fw/hal/jinghongling/make/YC3121_hal.uvoptx	(working copy)
@@ -215,7 +215,7 @@
 
   <Group>
     <GroupName>lib_sdk</GroupName>
-    <tvExp>1</tvExp>
+    <tvExp>0</tvExp>
     <tvExpOptDlg>0</tvExpOptDlg>
     <cbSel>0</cbSel>
     <RteFlg>0</RteFlg>
@@ -863,7 +863,7 @@
       <GroupNumber>10</GroupNumber>
       <FileNumber>52</FileNumber>
       <FileType>1</FileType>
-      <tvExp>0</tvExp>
+      <tvExp>1</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\src\HalGpio\halGpio.c</PathWithFileName>
@@ -1015,7 +1015,7 @@
 
   <Group>
     <GroupName>HalPwm</GroupName>
-    <tvExp>0</tvExp>
+    <tvExp>1</tvExp>
     <tvExpOptDlg>0</tvExpOptDlg>
     <cbSel>0</cbSel>
     <RteFlg>0</RteFlg>
@@ -1023,7 +1023,7 @@
       <GroupNumber>18</GroupNumber>
       <FileNumber>60</FileNumber>
       <FileType>1</FileType>
-      <tvExp>0</tvExp>
+      <tvExp>1</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\src\HalPwm\halPWM.c</PathWithFileName>
@@ -1123,7 +1123,7 @@
       <GroupNumber>23</GroupNumber>
       <FileNumber>65</FileNumber>
       <FileType>1</FileType>
-      <tvExp>0</tvExp>
+      <tvExp>1</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\src\HalTimer\halTimer.c</PathWithFileName>
Index: make/YC3121_hal.uvprojx
===================================================================
--- /YC3121_SDK/fw/hal/jinghongling/make/YC3121_hal.uvprojx	(revision 742)
+++ /YC3121_SDK/fw/hal/jinghongling/make/YC3121_hal.uvprojx	(working copy)
@@ -926,7 +926,7 @@
                   <RVCTZI>0</RVCTZI>
                   <RVCTOtherData>0</RVCTOtherData>
                   <ModuleSelection>0</ModuleSelection>
-                  <IncludeInBuild>0</IncludeInBuild>
+                  <IncludeInBuild>1</IncludeInBuild>
                   <AlwaysBuild>2</AlwaysBuild>
                   <GenerateAssemblyFile>2</GenerateAssemblyFile>
                   <AssembleAssemblyFile>2</AssembleAssemblyFile>
@@ -1078,7 +1078,7 @@
                   <RVCTZI>0</RVCTZI>
                   <RVCTOtherData>0</RVCTOtherData>
                   <ModuleSelection>0</ModuleSelection>
-                  <IncludeInBuild>0</IncludeInBuild>
+                  <IncludeInBuild>1</IncludeInBuild>
                   <AlwaysBuild>2</AlwaysBuild>
                   <GenerateAssemblyFile>2</GenerateAssemblyFile>
                   <AssembleAssemblyFile>2</AssembleAssemblyFile>
Index: src/HalGpio/halGpio.c
===================================================================
--- /YC3121_SDK/fw/hal/jinghongling/src/HalGpio/halGpio.c	(revision 742)
+++ /YC3121_SDK/fw/hal/jinghongling/src/HalGpio/halGpio.c	(working copy)
@@ -309,7 +309,7 @@
 {
     uiGpioIndex = gpioGroup(uiGpioIndex);
 
-	//GPIO_WeakEvenConfig((GPIO_TypeDef)uiGpioIndex, (uint16_t)uiGpioPin,(FunctionalState) ucEn);
+	 // GPIO_WeakEvenConfig((GPIO_TypeDef)uiGpioIndex, (uint16_t)uiGpioPin,(FunctionalState) ucEn);
     return HAL_OK;
 }
 
@@ -331,6 +331,97 @@
     enable_intr(INTR_GPIO);
 }
 
+void halVbatGpioInit(u32 uiVbatGpioIndex, unsigned char ucIntControl)
+{
+	uint8_t i;
+	uint16_t temp;
+	for(i = 0 ; i <16 ; i++)
+	{
+		temp = 1 << i;
+		GPIO_Config((GPIO_TypeDef)uiVbatGpioIndex, temp, ANALOG);
+	}
+	ADC_InitTypeDef ADCInitStruct;
+	ADCInitStruct.ADC_Channel = ADC_CHANNEL_2;
+	ADCInitStruct.ADC_Mode = (ADC_ModeTypeDef)ucIntControl;
+	ADC_Init(&ADCInitStruct);
+}
+
+u32 halVbatIoReadPin(u32 uiGpioPin)
+{
+	if(uiGpioPin<16)
+	{
+	  halVbatGpioInit((GPIO_TypeDef)GPIOA, ADC_GPIO);
+	}
+	else if(uiGpioPin>=16 && uiGpioPin<32)
+	{
+	  halVbatGpioInit((GPIO_TypeDef)GPIOB, ADC_GPIO);
+	}
+	else
+	{
+	  halVbatGpioInit((GPIO_TypeDef)GPIOC, ADC_GPIO);
+	}
+	 return ADC_GetVoltage(ADC_CHANNEL_2);
+}
+
+
+void halSpiSetPrintio(void)
+{
+	GPIO_Config(GPIOB, GPIO_Pin_2, SPID0_MISO);
+	GPIO_Config(GPIOB, GPIO_Pin_1, SPID0_MOSI);
+	GPIO_Config(GPIOC, GPIO_Pin_9, SPID0_NCS);
+	GPIO_Config(GPIOB, GPIO_Pin_0, SPID0_SCK);
+}
+
+void setVbatIo(u8 mode)
+{
+	ADC_CTRL1 = 0x8f | ((mode) << 4);
+}
+
+s32 halClearGpioIT(u32 uiGpio)
+{
+	if(uiGpio<16)
+	{
+		GPIO_INTR_EN(0) &= ~(1<<uiGpio);
+	}
+	else if(uiGpio>=16 && uiGpio<32)
+	{
+		GPIO_INTR_EN(1) &= ~(1<<(uiGpio-16));
+	}
+	else
+	{
+		GPIO_INTR_EN(2) &= ~(1<<(uiGpio-32));
+	}
+}
+
+u32 halGetGpioIT(u32 uiGpio)
+{
+	if(uiGpio<16)
+	{
+		return (GPIO_INTR_EN(0) >> uiGpio) & 0x01;
+	}
+	else if(uiGpio>=16 && uiGpio<32)
+	{
+		return (GPIO_INTR_EN(1) >> (uiGpio-16)) & 0x01;
+	}
+	else
+	{
+		return (GPIO_INTR_EN(2) >> (uiGpio-32)) & 0x01;
+	}
+}
+
+void gpioPB13set(u8 ucMode)
+{
+	GPIO_Config(HAL_GPIOB, HAL_GPIO_PIN_13, (GPIO_FunTypeDef) ucMode);
+}
+
+void gpioPB14set(u8 ucMode)
+{
+	GPIO_Config(HAL_GPIOB, HAL_GPIO_PIN_14, (GPIO_FunTypeDef) ucMode);
+}
+
+
+
+
 //##############################################################################
 //############################################################## 测试函数
 
Index: src/HalInt/halInt.c
===================================================================
--- /YC3121_SDK/fw/hal/jinghongling/src/HalInt/halInt.c	(revision 742)
+++ /YC3121_SDK/fw/hal/jinghongling/src/HalInt/halInt.c	(working copy)
@@ -151,55 +151,55 @@
 //    gpioIntIsr();
 //}
 
-// 资源YC3121已使用
-void TIMER0_IRQHandler(void)
-{
-    halPrintf("TIMER0_IRQHandler\n");
-}
+//// 资源YC3121已使用
+//void TIMER0_IRQHandler(void)
+//{
+//    halPrintf("TIMER0_IRQHandler\n");
+//}
 
-// 资源YC3121已使用
-void TIMER1_IRQHandler(void)
-{
-    halPrintf("TIMER1_IRQHandler\n");
-}
+//// 资源YC3121已使用
+//void TIMER1_IRQHandler(void)
+//{
+//    halPrintf("TIMER1_IRQHandler\n");
+//}
 
-// 资源YC3121已使用
-void TIMER2_IRQHandler(void)
-{
-    halPrintf("TIMER2_IRQHandler\n");
-}
+//// 资源YC3121已使用
+//void TIMER2_IRQHandler(void)
+//{
+//    halPrintf("TIMER2_IRQHandler\n");
+//}
 
-// 资源YC3121已使用
-void TIMER3_IRQHandler(void)
-{
-    halPrintf("TIMER3_IRQHandler\n");
-}
+//// 资源YC3121已使用
+//void TIMER3_IRQHandler(void)
+//{
+//    halPrintf("TIMER3_IRQHandler\n");
+//}
 
-// 用于按键扫描
-void TIMER4_IRQHandler(void)
-{
-    halPrintf("TIMER4_IRQHandler \n");
-}
+//// 用于按键扫描
+//void TIMER4_IRQHandler(void)
+//{
+//    halPrintf("TIMER4_IRQHandler \n");
+//}
 
-void TIMER5_IRQHandler(void)
-{
-    halPrintf("TIMER5_IRQHandler\n");
-}
+//void TIMER5_IRQHandler(void)
+//{
+//    halPrintf("TIMER5_IRQHandler\n");
+//}
 
-void TIMER6_IRQHandler(void)
-{
-    halPrintf("TIMER6_IRQHandler\n");
-}
+//void TIMER6_IRQHandler(void)
+//{
+//    halPrintf("TIMER6_IRQHandler\n");
+//}
 
-void TIMER7_IRQHandler(void)
-{
-    halPrintf("TIMER7_IRQHandler\n");
-}
+//void TIMER7_IRQHandler(void)
+//{
+//    halPrintf("TIMER7_IRQHandler\n");
+//}
 
-void TIMER8_IRQHandler(void)
-{
-    halPrintf("TIMER8_IRQHandler\n");
-}
+//void TIMER8_IRQHandler(void)
+//{
+//    halPrintf("TIMER8_IRQHandler\n");
+//}
 
 void SM4_IRQHandler(void)
 {
Index: src/HalTimer/halTimer.c
===================================================================
--- /YC3121_SDK/fw/hal/jinghongling/src/HalTimer/halTimer.c	(revision 742)
+++ /YC3121_SDK/fw/hal/jinghongling/src/HalTimer/halTimer.c	(working copy)
@@ -1,184 +1,235 @@
-/*******************************************************************************
-文件名: <halTims.c>
-描  述: timer相关接口函数
-版  权:
-作  者: jqdeng
---------------------------------------------------------------------------------
-备注  :
---------------------------------------------------------------------------------
-修改记录: 创建
-日期			修改人			修改内容
-2019.11.16		jqdeng				创建
-*******************************************************************************/
-
 #include "halTimer.h"
-#include "yc_timer.h"
-#include "yc_systick.h"
-
 
 volatile  uint32_t tick_Timer[9] = {0};
 
+void halTimeIRQHandler(u32 uiTimeID)
+{
+	tick_Timer[uiTimeID]++;
+}
+
 
-/*******************************************************************************
-函数功能: 在系统初始化时为timerwhen设置一些全局设置
-输入参数: 无
-输出参数: 无
-返回值: 无
---------------------------------------------------------------------------------
-备注  :
---------------------------------------------------------------------------------
-修改信息: 2019.11.16    jqdeng    创建
-*******************************************************************************/
-s32 halTimerInit(void)
-{
-	return HAL_ERROR;
-}
-
-/*******************************************************************************
-函数功能: 配置定时器
-输入参数: ptTimerParam：指向数据结构的指针 T_TIMER_PARAM
-输出参数: 无
-返回值: HAL_OK      成功
-        HAL_ERROR   失败
---------------------------------------------------------------------------------
-备注  :
---------------------------------------------------------------------------------
-修改信息: 2019.11.16    jqdeng    创建
-*******************************************************************************/
-s32 halTimerConfig(T_TIMER_PARAM *ptTimerParam)
+void halTimeSetState(u32 uiTimeID, u8 ucState)
 {
-#if 0
-    return HAL_ERROR;
-#else
-	TIM_InitTypeDef TIM_InitStruct;
+	if(ucState == HAL_TIM_STATE_READY)
+	  TIM_Cmd((TIM_NumTypeDef)uiTimeID, ENABLE);
+	else if(ucState == HAL_TIM_STATE_RESET)
+		TIM_Cmd((TIM_NumTypeDef)uiTimeID, DISABLE);
+}
+
+
+u8 halTimeGetState(u32 uiTimeID)
+{
+	u8 State=0;
+	if ((TIM_NumTypeDef)uiTimeID < TIM8)
+		State = (TIM_CTRL << ((TIM_NumTypeDef)uiTimeID * 4)) & 0X01;
+  else
+   State = (TIM_CTRL << ((TIM_NumTypeDef)uiTimeID * 4)) & 0X01;
+	
+	if(State == 0x01)
+	return HAL_TIM_STATE_READY;
+	else
+	return HAL_TIM_STATE_RESET;
+}
 
-	TIM_InitStruct.period = ptTimerParam->perhald;
-	TIM_InitStruct.TIMx = (TIM_NumTypeDef)ptTimerParam->index;
-	TIM_Init(&TIM_InitStruct);
 
-    TIM_ModeConfig(ptTimerParam->index, TIM_Mode_TIMER);
+s32 halTimerInit(u32 uiTimeID)
+{
+	TIM_Cmd((TIM_NumTypeDef)uiTimeID, DISABLE);
+	if ((TIM_NumTypeDef)uiTimeID < TIM8)
+	TIM_CTRL |= (((((uint32_t)1)<<TIM_CTRL_MODE)|(((uint32_t)1)<<TIM_CTRL_AUTO_RELOAD))<<(TIM_NumTypeDef)uiTimeID*4);
+	else
+	TIM_CTRL1 |= (((((uint32_t)1)<<TIM_CTRL_MODE)|(((uint32_t)1)<<TIM_CTRL_AUTO_RELOAD))<<0);
+	return HAL_TIME_OK;
+}
+
+
+s32 halTimerDeInit(u32 uiTimeID)
+{
+	if( uiTimeID >9)
+	{
+		return HAL_TIME_FAILED;
+	}
+	else
+	{
+		disable_clock(CLKCLS_TIM);
+	}
+	return  HAL_TIME_OK;
+}
+
+
+s32 halTimerConfig(u32 uiTimeID, u16 usPresclar, u8 ucCounterMode, u8 ucSizeMode)
+{
+	if(usPresclar == HAL_TIM_PRESCLAR_NOT_DIV)
+	{
+		if(ucCounterMode == HAL_TIM_MODE_CONTINUITY_RELOAD)
+		{
+			if(ucSizeMode == HAL_TIM_SIZE_32BIT)
+			{
+					if ((TIM_NumTypeDef)uiTimeID < TIM8)
+					TIM_CTRL |= (((((uint32_t)1)<<TIM_CTRL_AUTO_RELOAD))<<(TIM_NumTypeDef)uiTimeID*4);
+					else
+					TIM_CTRL1 |= (((((uint32_t)1)<<TIM_CTRL_AUTO_RELOAD))<<0);
+					return HAL_TIME_OK;
+			}
+			else
+			{
+				return HAL_TIME_FAILED;
+			}
+		}
+		else if(ucCounterMode == HAL_TIM_MODE_CONTINUITY_NO_RELOAD)
+		{
+			if ((TIM_NumTypeDef)uiTimeID < TIM8)
+			TIM_CTRL |= (((((uint32_t)0)<<TIM_CTRL_AUTO_RELOAD))<<(TIM_NumTypeDef)uiTimeID*4);
+			else
+			TIM_CTRL1 |= (((((uint32_t)0)<<TIM_CTRL_AUTO_RELOAD))<<0);
+			return HAL_TIME_OK;
+		}	
+	}
+	else
+		return HAL_TIME_ERRPARA;
+}
+
+
+s32 halSetTimer(u32 uiTimeID, u32 uiTimeout)
+{
+	TIM_PCNT((TIM_NumTypeDef)uiTimeID) = uiTimeout;
+}
 
+
+s32 halGetTimer(u32 uiTimeID)
+{
+	return 	TIM_CNT((TIM_NumTypeDef)uiTimeID);
+}
+
+
+s32 halTimerStart(u32 uiTimeID)
+{
+#if 0
+    return HAL_ERROR;
+#else
+	TIM_Cmd((TIM_NumTypeDef)uiTimeID, ENABLE);
 	return HAL_OK;
 #endif
 }
 
-/*******************************************************************************
-函数功能: 启动定时器
-输入参数: eIndex：定时器索引
-输出参数: 无
-返回值: HAL_OK      成功
-        HAL_ERROR   失败
---------------------------------------------------------------------------------
-备注  :
---------------------------------------------------------------------------------
-修改信息: 2019.11.16    jqdeng    创建
-*******************************************************************************/
-s32 halTimerStart(E_TIMER_ID eIndex)
+s32 hal_TimerStop(u32 uiTimeID)
 {
 #if 0
     return HAL_ERROR;
 #else
-	TIM_Cmd((TIM_NumTypeDef)eIndex, ENABLE);
+	TIM_Cmd((TIM_NumTypeDef)uiTimeID, DISABLE);
 	return HAL_OK;
 #endif
 }
 
-/*******************************************************************************
-函数功能: 停止一个计时器
-输入参数: eIndex：定时器索引
-输出参数: 无
-返回值: HAL_OK      成功
-        HAL_ERROR   失败
---------------------------------------------------------------------------------
-备注  :
---------------------------------------------------------------------------------
-修改信息: 2019.11.16    jqdeng    创建
-*******************************************************************************/
-s32 halTimerStop(E_TIMER_ID eIndex)
+
+s32 halTimerStartIT(u32 uiTimeID)
 {
 #if 0
     return HAL_ERROR;
 #else
-	TIM_Cmd((TIM_NumTypeDef)eIndex, DISABLE);
+	switch(uiTimeID)
+	{
+		case 0:
+			NVIC_EnableIRQ(TIM0_IRQn);
+	    NVIC_SetPriority(TIM0_IRQn, 0);
+		  break;
+		case 1:
+			NVIC_EnableIRQ(TIM1_IRQn);
+	    NVIC_SetPriority(TIM1_IRQn, 0);
+		break;
+		case 2:
+			NVIC_EnableIRQ(TIM2_IRQn);
+			NVIC_SetPriority(TIM2_IRQn, 0);
+		break;
+		case 3:
+			NVIC_EnableIRQ(TIM3_IRQn);
+			NVIC_SetPriority(TIM3_IRQn, 0);
+		break;
+		case 4:
+			NVIC_EnableIRQ(TIM4_IRQn);
+			NVIC_SetPriority(TIM4_IRQn, 0);
+		break;
+		case 5:
+			NVIC_EnableIRQ(TIM5_IRQn);
+			NVIC_SetPriority(TIM5_IRQn, 0);
+		break;
+		case 6:
+			NVIC_EnableIRQ(TIM6_IRQn);
+			NVIC_SetPriority(TIM6_IRQn, 0);
+		break;
+		case 7:
+			NVIC_EnableIRQ(TIM7_IRQn);
+			NVIC_SetPriority(TIM7_IRQn, 0);
+		break;
+		case 8:
+			NVIC_EnableIRQ(TIM8_IRQn);
+			NVIC_SetPriority(TIM8_IRQn, 0);
+		break;
+		default:
+			break;
+	}
 	return HAL_OK;
-#endif
+#endif				
 }
 
 
-/*******************************************************************************
-函数功能: 设置一个软件计时器
-输入参数: ptTimerUnit：指向软件计时器的指针
-		  uiTimeout: 软件计时器重载值
-输出参数: 无
-返回值: HAL_OK      成功
-        HAL_ERROR   失败
---------------------------------------------------------------------------------
-备注  :
---------------------------------------------------------------------------------
-修改信息: 2019.11.16    jqdeng    创建
-*******************************************************************************/
-s32 halTimerGet(T_TIMER_UNIT *ptTimerUnit,u32 uiTimeout)
+void hal_TimerConfig(T_TIMER_PARAM *tmr)
 {
-	return HAL_ERROR;
+	TIM_InitTypeDef TIM_InitStruct;
+
+	TIM_InitStruct.period = tmr->perhald;
+	TIM_InitStruct.TIMx = (TIM_NumTypeDef)tmr->index;
+	TIM_Init(&TIM_InitStruct);
 }
 
+void TIMER0_IRQHandler(void)
+{
+		halTimeIRQHandler(TIM0);
+}
 
-/*******************************************************************************
-函数功能: 查询软件计时器的剩余计数
-输入参数: ptTimerUnit：指向软件计时器的指针
-输出参数: 无
-返回值: HAL_OK      成功
-        HAL_ERROR   失败
---------------------------------------------------------------------------------
-备注  :
---------------------------------------------------------------------------------
-修改信息: 2019.11.16    jqdeng    创建
-*******************************************************************************/
-s32 halTimerLeft(T_TIMER_UNIT *ptTimerUnit)
+void TIMER1_IRQHandler(void)
 {
-	return HAL_ERROR;
+		halTimeIRQHandler(TIM1);
 }
 
-/*******************************************************************************
-函数功能: 获取系统计时器的刻度值(以毫秒为单位)
-输入参数: 无
-输出参数: 无
-返回值: 系统计时器以毫秒为单位计时
---------------------------------------------------------------------------------
-备注  :
---------------------------------------------------------------------------------
-修改信息: 2019.11.16    jqdeng    创建
-*******************************************************************************/
-u32 halGetSysTick(void)
+void TIMER2_IRQHandler(void)
 {
-    return SysTick_GetTick();
+	 halTimeIRQHandler(TIM2);
 }
 
+void TIMER3_IRQHandler(void)
+{
+	halTimeIRQHandler(TIM3);
+}
 
-//#############################################################################
-//############################################################## 测试函数
+void TIMER4_IRQHandler(void)
+{
+	halTimeIRQHandler(TIM4);
+}
 
-// 定时器测试
-void testTimer(void)
+void TIMER5_IRQHandler(void)
 {
-    s32 iRet = 0;
-    T_TIMER_PARAM ptTimerParam;
+	halTimeIRQHandler(TIM5);
+}
 
-    halPrintf("<testTimer start>\n");
+void TIMER6_IRQHandler(void)
+{
+	halTimeIRQHandler(TIM6);
+}
 
-    ptTimerParam.perhald = 20 * TIMER_RELOAD_1MS;
-    ptTimerParam.index = SYS_TM_4; // TIM4
+void TIMER7_IRQHandler(void)
+{
+	halTimeIRQHandler(TIM7);
+}
 
-    // 初始化定时器
-    iRet = halTimerConfig(&ptTimerParam);
+void TIMER8_IRQHandler(void)
+{
+	halTimeIRQHandler(TIM8);
+}
 
-    // 启动定时器
-    iRet = halTimerStart(SYS_TM_4);
 
-    halEnableIrq(HAL_INTR_TMR4);
 
-    halPrintf("<testTimer end>\n");
-}
 
 
 
