differential input adc board K64F Compatible hal freescale K64F

Dependents:   trms_helloworld AnalogIn_Diff_helloworld

Fork of AnalogIn_Diff by frederic blanc

Files at this revision

API Documentation at this revision

Comitter:
fblanc
Date:
Wed Dec 10 12:53:25 2014 +0000
Parent:
2:ea5a4c22bd53
Child:
4:a833fa5cce1e
Commit message:
ok;

Changed in this revision

AnalogIn_Diff.h Show annotated file Show diff for this revision Revisions of this file
AnalohIn_Diff.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/AnalogIn_Diff.h	Fri Dec 05 14:06:38 2014 +0000
+++ b/AnalogIn_Diff.h	Wed Dec 10 12:53:25 2014 +0000
@@ -17,7 +17,7 @@
 
 #ifndef ANALOGIN_DIFF_H
 #define ANALOGIN_DIFF_H
-
+#include "mbed.h"
 #include "mbed_assert.h"
 #include "analogin_api.h"
 #include "platform.h"
@@ -74,6 +74,8 @@
      */
     AnalogIn_Diff(int adc_ch);
 
+void test (int x);
+
     /** Destroy an AnalogIn_Diff
      */
     ~AnalogIn_Diff();
--- a/AnalohIn_Diff.cpp	Fri Dec 05 14:06:38 2014 +0000
+++ b/AnalohIn_Diff.cpp	Wed Dec 10 12:53:25 2014 +0000
@@ -18,10 +18,11 @@
 
 #if FSL_FEATURE_ADC_HAS_DIFF_MODE
 
-AnalogIn_Diff::~AnalogIn_Diff() { }
+
 
 AnalogIn_Diff::AnalogIn_Diff(int adc_ch)
 {
+    
     const uint32_t temp[] = ADC_BASE_ADDRS;
     for (int i = 0; i < sizeof(temp) / sizeof(temp[0]); i++)
         adc_addrs[i] = temp[i];
@@ -29,7 +30,7 @@
     
     instance=(adc_ch>>1)&1;
     chnNum=(adc_ch>>0)&1;
-            
+    test(1);       
     
     CLOCK_SYS_EnableAdcClock(instance);
 
@@ -51,24 +52,30 @@
     ADC_HAL_SetClkDividerMode(adc_addrs[instance], (adc_clk_divider_mode_t)(clkdiv & 0x3));
     ADC_HAL_SetRefVoltSrcMode(adc_addrs[instance], kAdcRefVoltSrcOfVref);
     ADC_HAL_SetResolutionMode(adc_addrs[instance], kAdcResolutionBitOfDiffModeAs16);
-    ADC_HAL_SetContinuousConvCmd(adc_addrs[instance], false);
+    ADC_HAL_SetContinuousConvCmd(adc_addrs[instance], false);//false
     ADC_HAL_SetHwTriggerCmd(adc_addrs[instance], false); /* sw trigger */
     ADC_HAL_SetHwAverageCmd(adc_addrs[instance], false);
     //ADC_HAL_SetHwAverageMode(adc_addrs[instance], kAdcHwAverageCountOf4);
     ADC_HAL_SetChnMuxMode(adc_addrs[instance], kAdcChnMuxOfB); /* only B channels are avail */
 
-
 }
 
+AnalogIn_Diff::~AnalogIn_Diff() { }
 
+void AnalogIn_Diff::test (int x)
+{
+       printf("\r\n %i: 0x%08lx\r\n",x,(long)adc_addrs[instance]);
+}
 
 
 int16_t AnalogIn_Diff::read_raws16()    // Returns a 16bit signed integer
 {
     /* sw trigger (SC1A) */
+
     ADC_HAL_ConfigChn(adc_addrs[instance], 0, false, true, chnNum);
     while (!ADC_HAL_GetChnConvCompletedCmd(adc_addrs[instance], 0));
-    return ADC_HAL_GetChnConvValueRAW(adc_addrs[instance], 0);
+   return ADC_HAL_GetChnConvValueRAW(adc_addrs[instance], 0);
+
 }
 
 float AnalogIn_Diff::read()