mbed library sources

Fork of mbed-src by mbed official

Files at this revision

API Documentation at this revision

Comitter:
mbed_official
Date:
Wed Aug 27 03:45:07 2014 +0100
Parent:
297:deebfb34b959
Child:
299:fb529cc9bc22
Commit message:
Synchronized with git revision 74958e0f7294def61da58f82b5f48fa2b2c55e00

Full URL: https://github.com/mbedmicro/mbed/commit/74958e0f7294def61da58f82b5f48fa2b2c55e00/

[NUCLEOs] Fix bug (normalization to 16bit) in adc read_u16()

Changed in this revision

targets/hal/TARGET_STM/TARGET_NUCLEO_F030R8/analogin_api.c Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_STM/TARGET_NUCLEO_F072RB/analogin_api.c Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_STM/TARGET_NUCLEO_F103RB/analogin_api.c Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_STM/TARGET_NUCLEO_F302R8/analogin_api.c Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_STM/TARGET_NUCLEO_F334R8/analogin_api.c Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/analogin_api.c Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_STM/TARGET_NUCLEO_F411RE/analogin_api.c Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_STM/TARGET_NUCLEO_L053R8/analogin_api.c Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_STM/TARGET_NUCLEO_L152RE/analogin_api.c Show annotated file Show diff for this revision Revisions of this file
--- a/targets/hal/TARGET_STM/TARGET_NUCLEO_F030R8/analogin_api.c	Wed Aug 27 03:30:08 2014 +0100
+++ b/targets/hal/TARGET_STM/TARGET_NUCLEO_F030R8/analogin_api.c	Wed Aug 27 03:45:07 2014 +0100
@@ -169,7 +169,10 @@
 }
 
 uint16_t analogin_read_u16(analogin_t *obj) {
-    return (adc_read(obj));
+    uint16_t value = adc_read(obj);
+    // 12-bit to 16-bit conversion
+    value = ((value << 4) & (uint16_t)0xFFF0) | ((value >> 8) & (uint16_t)0x000F);
+    return value;
 }
 
 float analogin_read(analogin_t *obj) {
--- a/targets/hal/TARGET_STM/TARGET_NUCLEO_F072RB/analogin_api.c	Wed Aug 27 03:30:08 2014 +0100
+++ b/targets/hal/TARGET_STM/TARGET_NUCLEO_F072RB/analogin_api.c	Wed Aug 27 03:45:07 2014 +0100
@@ -176,7 +176,10 @@
 }
 
 uint16_t analogin_read_u16(analogin_t *obj) {
-    return (adc_read(obj));
+    uint16_t value = adc_read(obj);
+    // 12-bit to 16-bit conversion
+    value = ((value << 4) & (uint16_t)0xFFF0) | ((value >> 8) & (uint16_t)0x000F);
+    return value;
 }
 
 float analogin_read(analogin_t *obj) {
--- a/targets/hal/TARGET_STM/TARGET_NUCLEO_F103RB/analogin_api.c	Wed Aug 27 03:30:08 2014 +0100
+++ b/targets/hal/TARGET_STM/TARGET_NUCLEO_F103RB/analogin_api.c	Wed Aug 27 03:45:07 2014 +0100
@@ -171,7 +171,10 @@
 }
 
 uint16_t analogin_read_u16(analogin_t *obj) {
-    return (adc_read(obj));
+    uint16_t value = adc_read(obj);
+    // 12-bit to 16-bit conversion
+    value = ((value << 4) & (uint16_t)0xFFF0) | ((value >> 8) & (uint16_t)0x000F);
+    return value;
 }
 
 float analogin_read(analogin_t *obj) {
--- a/targets/hal/TARGET_STM/TARGET_NUCLEO_F302R8/analogin_api.c	Wed Aug 27 03:30:08 2014 +0100
+++ b/targets/hal/TARGET_STM/TARGET_NUCLEO_F302R8/analogin_api.c	Wed Aug 27 03:45:07 2014 +0100
@@ -180,7 +180,10 @@
 }
 
 uint16_t analogin_read_u16(analogin_t *obj) {
-    return (adc_read(obj));
+    uint16_t value = adc_read(obj);
+    // 12-bit to 16-bit conversion
+    value = ((value << 4) & (uint16_t)0xFFF0) | ((value >> 8) & (uint16_t)0x000F);
+    return value;
 }
 
 float analogin_read(analogin_t *obj) {
--- a/targets/hal/TARGET_STM/TARGET_NUCLEO_F334R8/analogin_api.c	Wed Aug 27 03:30:08 2014 +0100
+++ b/targets/hal/TARGET_STM/TARGET_NUCLEO_F334R8/analogin_api.c	Wed Aug 27 03:45:07 2014 +0100
@@ -198,7 +198,10 @@
 
 uint16_t analogin_read_u16(analogin_t *obj)
 {
-    return (adc_read(obj));
+    uint16_t value = adc_read(obj);
+    // 12-bit to 16-bit conversion
+    value = ((value << 4) & (uint16_t)0xFFF0) | ((value >> 8) & (uint16_t)0x000F);
+    return value;
 }
 
 float analogin_read(analogin_t *obj)
--- a/targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/analogin_api.c	Wed Aug 27 03:30:08 2014 +0100
+++ b/targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/analogin_api.c	Wed Aug 27 03:45:07 2014 +0100
@@ -170,7 +170,10 @@
 }
 
 uint16_t analogin_read_u16(analogin_t *obj) {
-    return (adc_read(obj));
+    uint16_t value = adc_read(obj);
+    // 12-bit to 16-bit conversion
+    value = ((value << 4) & (uint16_t)0xFFF0) | ((value >> 8) & (uint16_t)0x000F);
+    return value;
 }
 
 float analogin_read(analogin_t *obj) {
--- a/targets/hal/TARGET_STM/TARGET_NUCLEO_F411RE/analogin_api.c	Wed Aug 27 03:30:08 2014 +0100
+++ b/targets/hal/TARGET_STM/TARGET_NUCLEO_F411RE/analogin_api.c	Wed Aug 27 03:45:07 2014 +0100
@@ -173,7 +173,10 @@
 
 uint16_t analogin_read_u16(analogin_t *obj)
 {
-    return (adc_read(obj));
+    uint16_t value = adc_read(obj);
+    // 12-bit to 16-bit conversion
+    value = ((value << 4) & (uint16_t)0xFFF0) | ((value >> 8) & (uint16_t)0x000F);
+    return value;
 }
 
 float analogin_read(analogin_t *obj)
--- a/targets/hal/TARGET_STM/TARGET_NUCLEO_L053R8/analogin_api.c	Wed Aug 27 03:30:08 2014 +0100
+++ b/targets/hal/TARGET_STM/TARGET_NUCLEO_L053R8/analogin_api.c	Wed Aug 27 03:45:07 2014 +0100
@@ -177,7 +177,10 @@
 }
 
 uint16_t analogin_read_u16(analogin_t *obj) {
-    return (adc_read(obj));
+    uint16_t value = adc_read(obj);
+    // 12-bit to 16-bit conversion
+    value = ((value << 4) & (uint16_t)0xFFF0) | ((value >> 8) & (uint16_t)0x000F);
+    return value;
 }
 
 float analogin_read(analogin_t *obj) {
--- a/targets/hal/TARGET_STM/TARGET_NUCLEO_L152RE/analogin_api.c	Wed Aug 27 03:30:08 2014 +0100
+++ b/targets/hal/TARGET_STM/TARGET_NUCLEO_L152RE/analogin_api.c	Wed Aug 27 03:45:07 2014 +0100
@@ -180,7 +180,10 @@
 }
 
 uint16_t analogin_read_u16(analogin_t *obj) {
-    return (adc_read(obj));
+    uint16_t value = adc_read(obj);
+    // 12-bit to 16-bit conversion
+    value = ((value << 4) & (uint16_t)0xFFF0) | ((value >> 8) & (uint16_t)0x000F);
+    return value;
 }
 
 float analogin_read(analogin_t *obj) {