From 19502957357aadf04015fd55272ae051d9fb0f23 Mon Sep 17 00:00:00 2001
From: danicampora <daniel@wipy.io>
Date: Mon, 26 Oct 2015 21:46:36 +0100
Subject: [PATCH] cc3200: Set pin direction first, then value. Fixes #1542.

---
 cc3200/mods/pybpin.c  |  6 ++----
 tests/wipy/pin.py     | 13 +++++++++++--
 tests/wipy/pin.py.exp |  2 ++
 3 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/cc3200/mods/pybpin.c b/cc3200/mods/pybpin.c
index c1c035054..4a2c313ed 100644
--- a/cc3200/mods/pybpin.c
+++ b/cc3200/mods/pybpin.c
@@ -290,16 +290,14 @@ STATIC void pin_obj_configure (const pin_obj_t *self) {
             default:
                 break;
             }
-
+            // configure the direction
+            MAP_GPIODirModeSet(self->port, self->bit, direction);
             // set the pin value
             if (self->value) {
                 MAP_GPIOPinWrite(self->port, self->bit, self->bit);
             } else {
                 MAP_GPIOPinWrite(self->port, self->bit, 0);
             }
-
-            // configure the direction
-            MAP_GPIODirModeSet(self->port, self->bit, direction);
         }
         // now set the alternate function
         MAP_PinModeSet (self->pin_num, self->af);
diff --git a/tests/wipy/pin.py b/tests/wipy/pin.py
index 9f2eadb96..22c7c6176 100644
--- a/tests/wipy/pin.py
+++ b/tests/wipy/pin.py
@@ -1,5 +1,7 @@
-""" This test need a set of pins which can be set as inputs and have no external 
-    pull up or pull down connected.
+""" 
+This test need a set of pins which can be set as inputs and have no external 
+pull up or pull down connected.
+GP12 and GP17 must be connected together 
 """
 from machine import Pin
 import os
@@ -14,6 +16,13 @@ elif 'WiPy' in mch:
 else:
     raise Exception('Board not supported!')
 
+# test initial value
+p = Pin('GP12', Pin.IN)
+Pin('GP17', Pin.OUT, value=1)
+print(p() == 1)
+Pin('GP17', Pin.OUT, value=0)
+print(p() == 0)
+
 def test_noinit():
     for p in pin_map:
         pin = Pin(p)
diff --git a/tests/wipy/pin.py.exp b/tests/wipy/pin.py.exp
index 7ca85ebdf..0e3dddcf2 100644
--- a/tests/wipy/pin.py.exp
+++ b/tests/wipy/pin.py.exp
@@ -1,3 +1,5 @@
+True
+True
 1
 1
 1
-- 
GitLab