summaryrefslogtreecommitdiffstatshomepage
path: root/extmod
diff options
context:
space:
mode:
authorDave Hylands <dhylands@gmail.com>2014-09-26 09:04:05 -0700
committerDave Hylands <dhylands@gmail.com>2014-09-27 19:40:37 -0700
commit39296b40d49b4b6b9373a80de67e017e540f1408 (patch)
treed622afcf1e1620b17444201f8cbc9d030e2f39ed /extmod
parentb766e79510d87db1b18028a0fae3f195091fcaf1 (diff)
downloadmicropython-39296b40d49b4b6b9373a80de67e017e540f1408.tar.gz
micropython-39296b40d49b4b6b9373a80de67e017e540f1408.zip
Fix timer overflow code.
Teensy doesn't need to worry about overflows since all of its timers are only 16-bit. For PWM, the pulse width needs to be able to vary from 0..period+1 (pulse-width == period+1 corresponds to 100% PWM) I couldn't test the 0xffffffff cases since we can't currently get a period that big in python. With a prescaler of 0, that corresponds to a freq of 0.039 (i.e. cycle every 25.56 seconds), and we can't set that using freq or period. I also tested both stmhal and teensy with floats disabled, which required a few other code changes to compile.
Diffstat (limited to 'extmod')
-rw-r--r--extmod/moductypes.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/extmod/moductypes.c b/extmod/moductypes.c
index 73a8db7cc0..3e35ed682a 100644
--- a/extmod/moductypes.c
+++ b/extmod/moductypes.c
@@ -309,10 +309,12 @@ STATIC mp_obj_t get_aligned(uint val_type, void *p, mp_int_t index) {
case UINT64:
case INT64:
return mp_obj_new_int_from_ll(((int64_t*)p)[index]);
+ #if MICROPY_PY_BUILTINS_FLOAT
case FLOAT32:
return mp_obj_new_float(((float*)p)[index]);
case FLOAT64:
return mp_obj_new_float(((double*)p)[index]);
+ #endif
default:
assert(0);
return MP_OBJ_NULL;