Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 1:7b36e4381d83, committed 2014-05-22
- Comitter:
- JimCarver
- Date:
- Thu May 22 17:40:21 2014 +0000
- Parent:
- 0:0f6f4be28e21
- Commit message:
- Now supports either Channel 0 or 1 for both ADC0 & ADC1
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 |
diff -r 0f6f4be28e21 -r 7b36e4381d83 AnalogIn_Diff.h
--- a/AnalogIn_Diff.h Tue May 20 00:58:33 2014 +0000
+++ b/AnalogIn_Diff.h Thu May 22 17:40:21 2014 +0000
@@ -8,14 +8,14 @@
class AnalogIn_Diff
{
public:
- AnalogIn_Diff(int channel);
+ AnalogIn_Diff(int a2d_number);
/**
* AnalogIn_Diff destructor
*/
~AnalogIn_Diff();
- int16_t read_16(void);
- float read(void);
+ int16_t read_16(int channel);
+ float read(int channel);
private:
diff -r 0f6f4be28e21 -r 7b36e4381d83 AnalohIn_Diff.cpp
--- a/AnalohIn_Diff.cpp Tue May 20 00:58:33 2014 +0000
+++ b/AnalohIn_Diff.cpp Thu May 22 17:40:21 2014 +0000
@@ -2,30 +2,29 @@
#include "AnalogIn_Diff.h"
-AnalogIn_Diff::AnalogIn_Diff(int channel) : ch(channel) {
- if(ch) BW_SIM_SCGC3_ADC1(1);
+AnalogIn_Diff::AnalogIn_Diff(int a2d_number) : ch(a2d_number) {
+ if(ch) BW_SIM_SCGC3_ADC1(1); // Turn on clock as needed
else BW_SIM_SCGC6_ADC0(1);
- BW_ADC_SC1n_ADCH(ch, 0, 0x01);
- BW_ADC_SC1n_DIFF(ch, 0, 1);
- BW_ADC_CFG1_ADICLK(ch, 0);
- BW_ADC_CFG1_MODE(ch, 3);
- BW_ADC_CFG1_ADLSMP(ch, 0); //
- BW_ADC_CFG1_ADIV(ch, 3);
- BW_ADC_CFG1_ADLPC(ch, 0);
+ BW_ADC_SC1n_DIFF(ch, 0, 1); // Differential Mode
+ BW_ADC_CFG1_ADICLK(ch, 0); // Bus Clock
+ BW_ADC_CFG1_MODE(ch, 3); // 16Bit differential mode
+ BW_ADC_CFG1_ADLSMP(ch, 0); // Short Sample Window
+ BW_ADC_CFG1_ADIV(ch, 3); // Clock / 8
+ BW_ADC_CFG1_ADLPC(ch, 0); // Normal Power Mode
}
AnalogIn_Diff::~AnalogIn_Diff() { }
-int16_t AnalogIn_Diff::read_16(void) {
- BW_ADC_SC1n_ADCH(ch, 0, 0x01);
- while(!BR_ADC_SC1n_COCO(ch, 0));
- return(BR_ADC_Rn_D(ch, 0));
+int16_t AnalogIn_Diff::read_16(int channel) { // Returns a 16bit signed integer
+ BW_ADC_SC1n_ADCH(ch, 0, channel); // Trigger Conversion
+ while(!BR_ADC_SC1n_COCO(ch, 0)); // Wait for conversion to finish
+ return(BR_ADC_Rn_D(ch, 0)); // Return the result
}
-float AnalogIn_Diff::read(void) {
+float AnalogIn_Diff::read(int channel) {
int16_t i;
float t;
- BW_ADC_SC1n_ADCH(ch, 0, 0x01);
+ BW_ADC_SC1n_ADCH(ch, 0, channel);
while(!BR_ADC_SC1n_COCO(ch, 0));
i = BR_ADC_Rn_D(ch, 0);
t = ((float) i);