소스 검색

更新CPU工程
修改ADC采样间隔为1ms。
更新MCU工程(iram版本和sram-nos版本)
修改ADC采样间隔为1ms。

helen 2 달 전
부모
커밋
40bf0cdf30

+ 7 - 7
amt630hv160-freertos-beta/ArkmicroFiles/libcpu-amt630hv160/source/adc.c

@@ -18,9 +18,9 @@
 #define ADC_DETINTER			0x30
 #define ADC_SCTR				0x34
 
-#define ADC_CLK_FREQ			10000
-#define ADC_DEBOUNCE_CNT		0x50
-
+#define ADC_CLK_FREQ			1000000
+#define ADC_DEBOUNCE_CNT		0x10000
+#define ADC_TRANS_INTERVAL_MS	1
 
 typedef struct adc_private_data {
 	eAdcID id;
@@ -147,7 +147,7 @@ static void adc_set_debounce_cnt(adc_pdata_t *adc, uint32_t debounce_cnt)
 }
 
 /*
- *	clk unit = 1/adc_clk
+ *	clk unit = 1/(adc_clk/2)
  */
 static void adc_set_transform_interval(adc_pdata_t *adc, uint32_t interval)
 {
@@ -181,7 +181,7 @@ static void adc_set_deinter(adc_pdata_t *adc, uint32_t count)
 			return;
 	}
 
-	mincnt = ADC_DEBOUNCE_CNT * ulClkGetRate(clkid) / 2 / ulClkGetRate(CLK_APB);
+	mincnt = ADC_DEBOUNCE_CNT * (ulClkGetRate(clkid) / 1000) / 2 / (ulClkGetRate(CLK_APB) / 1000);
 	adc_set_transform_interval(adc, configMAX(mincnt, count));
 }
 
@@ -190,7 +190,7 @@ static void adc_set_deinter_ms(adc_pdata_t *adc, uint32_t ms)
   	uint32_t count;
 
 	count =  (ms * ADC_CLK_FREQ)/1000;
-	count /= 5;
+	count /= 2;
 	if(count < 0xffff)
 		adc_set_deinter(adc, count);
 }
@@ -434,7 +434,7 @@ int adc_init(void)
 		/* set debounce count */
 		adc_set_debounce_cnt(adc, ADC_DEBOUNCE_CNT);
 
-		adc_set_deinter_ms(adc, 100);
+		adc_set_deinter_ms(adc, ADC_TRANS_INTERVAL_MS);
 
 		request_irq(adc->irq, 0, adc_int_handler, (void *)adc);
 	}

+ 6 - 5
amt630hv160-mcu/amt630hv160-mcu-iram/src/ArkmicroFiles/libcpu-amt630hv160/source/amt630hv160_adc.c

@@ -3,8 +3,9 @@
 
 #ifdef _ADC
 
-#define ADC_CLK_FREQ			10000
-#define ADC_DEBOUNCE_CNT		0x100
+#define ADC_CLK_FREQ			1000000
+#define ADC_DEBOUNCE_CNT		0x10000
+#define ADC_TRANS_INTERVAL_MS	1
 
 typedef struct adc_private_data {
 	u32 irq;
@@ -198,7 +199,7 @@ static void adc_set_debounce_cnt(ADC_TypeDef *adc, u32 debounce_cnt)
 }
 
 /*
- *	clk unit = 1/adc_clk
+ *	clk unit = 1/(adc_clk/2)
  */
 static void adc_set_transform_interval(ADC_TypeDef *adc, u32 interval)
 {
@@ -214,7 +215,7 @@ static void adc_set_deinter(ADC_TypeDef *adc, u32 count)
 {
 	int mincnt;
 
-	mincnt = ADC_DEBOUNCE_CNT * adc_get_clk(adc) / 2 / CLK_GetAHBFreq();
+	mincnt = ADC_DEBOUNCE_CNT * (adc_get_clk(adc) / 1000) / 2 / (CLK_GetAPBFreq() / 1000);
 	adc_set_transform_interval(adc, configMAX(mincnt, count));
 }
 
@@ -492,7 +493,7 @@ int adc_init(ADC_TypeDef *adc)
 	/* set debounce count */
 	adc_set_debounce_cnt(adc, ADC_DEBOUNCE_CNT);
 
-	adc_set_deinter_ms(adc, 100);
+	adc_set_deinter_ms(adc, ADC_TRANS_INTERVAL_MS);
 
 	NVIC_RegisterIrq(adc_prv->irq, adc_prv->int_priority, 0);
 

+ 6 - 5
amt630hv160-mcu/amt630hv160-mcu-sram-nos/src/ArkmicroFiles/libcpu-amt630hv160/source/amt630hv160_adc.c

@@ -3,8 +3,9 @@
 
 #ifdef _ADC
 
-#define ADC_CLK_FREQ			10000
-#define ADC_DEBOUNCE_CNT		0x100
+#define ADC_CLK_FREQ			1000000
+#define ADC_DEBOUNCE_CNT		0x10000
+#define ADC_TRANS_INTERVAL_MS	1
 
 typedef struct adc_private_data {
 	u32 irq;
@@ -198,7 +199,7 @@ static void adc_set_debounce_cnt(ADC_TypeDef *adc, u32 debounce_cnt)
 }
 
 /*
- *	clk unit = 1/adc_clk
+ *	clk unit = 1/(adc_clk/2)
  */
 static void adc_set_transform_interval(ADC_TypeDef *adc, u32 interval)
 {
@@ -214,7 +215,7 @@ static void adc_set_deinter(ADC_TypeDef *adc, u32 count)
 {
 	int mincnt;
 
-	mincnt = ADC_DEBOUNCE_CNT * adc_get_clk(adc) / 2 / CLK_GetAHBFreq();
+	mincnt = ADC_DEBOUNCE_CNT * (adc_get_clk(adc) / 1000) / 2 / (CLK_GetAPBFreq() / 1000);
 	adc_set_transform_interval(adc, MAX(mincnt, count));
 }
 
@@ -492,7 +493,7 @@ int adc_init(ADC_TypeDef *adc)
 	/* set debounce count */
 	adc_set_debounce_cnt(adc, ADC_DEBOUNCE_CNT);
 
-	adc_set_deinter_ms(adc, 100);
+	adc_set_deinter_ms(adc, ADC_TRANS_INTERVAL_MS);
 
 	NVIC_RegisterIrq(adc_prv->irq, adc_prv->int_priority, 0);