summaryrefslogtreecommitdiff
path: root/n
diff options
context:
space:
mode:
Diffstat (limited to 'n')
-rw-r--r--n/avr/modules/utils/utils.avr.h4
-rw-r--r--n/avr/modules/utils/utils.h6
2 files changed, 8 insertions, 2 deletions
diff --git a/n/avr/modules/utils/utils.avr.h b/n/avr/modules/utils/utils.avr.h
index 8338d96..bdba7f6 100644
--- a/n/avr/modules/utils/utils.avr.h
+++ b/n/avr/modules/utils/utils.avr.h
@@ -70,12 +70,12 @@ utils_delay (double s)
}
else if (cycles <= 255 * 3)
{
- uint8_t i = cycles;
+ uint8_t i = cycles / 3;
asm volatile ("1: dec %0\n\tbrne 1b" : "=r" (i) : "0" (i));
}
else if (cycles <= 65535 * 4)
{
- uint16_t i = cycles;
+ uint16_t i = cycles / 4;
asm volatile ("1: sbiw %0,1\n\tbrne 1b" : "=w" (i) : "0" (i));
}
else
diff --git a/n/avr/modules/utils/utils.h b/n/avr/modules/utils/utils.h
index 5a58f4b..6301505 100644
--- a/n/avr/modules/utils/utils.h
+++ b/n/avr/modules/utils/utils.h
@@ -67,6 +67,12 @@ utils_delay_ms (double ms)
v = max; \
} while (0)
+/** Return maximum of two values. */
+#define UTILS_MAX(a, b) ((a) > (b) ? (a) : (b))
+
+/** Return minimum of two values. */
+#define UTILS_MIN(a, b) ((a) < (b) ? (a) : (b))
+
/** Absolute value. */
#define UTILS_ABS(v) ((v) > 0 ? (v) : -(v))