aboutsummaryrefslogtreecommitdiffstats
path: root/src/lcd_hd44780.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2025-04-17 12:05:26 -0400
committerKevin O'Connor <kevin@koconnor.net>2025-04-17 12:09:19 -0400
commitcb6828ec34496e2ee59cc4e43a64a6b41c59acdc (patch)
tree4603a74b07ade4254d4df4bf688f322eed54e266 /src/lcd_hd44780.c
parent3656006a3053e8ec4ac548ac52ded62108dc3a25 (diff)
downloadkutter-cb6828ec34496e2ee59cc4e43a64a6b41c59acdc.tar.gz
kutter-cb6828ec34496e2ee59cc4e43a64a6b41c59acdc.tar.xz
kutter-cb6828ec34496e2ee59cc4e43a64a6b41c59acdc.zip
lcd_hd44780: Make sure nsecs_to_ticks() is always inlined
It is a compile-time calculation that needs to be inlined to work. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/lcd_hd44780.c')
-rw-r--r--src/lcd_hd44780.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/lcd_hd44780.c b/src/lcd_hd44780.c
index 0afca915..0170ddbc 100644
--- a/src/lcd_hd44780.c
+++ b/src/lcd_hd44780.c
@@ -23,19 +23,19 @@ struct hd44780 {
* Transmit functions
****************************************************************/
-static uint32_t
+static __always_inline uint32_t
nsecs_to_ticks(uint32_t ns)
{
return timer_from_us(ns * 1000) / 1000000;
}
-static inline void
-ndelay(uint32_t nsecs)
+static void
+ndelay(uint32_t ticks)
{
if (CONFIG_MACH_AVR)
// Slower MCUs don't require a delay
return;
- uint32_t end = timer_read_time() + nsecs_to_ticks(nsecs);
+ uint32_t end = timer_read_time() + ticks;
while (timer_is_before(timer_read_time(), end))
irq_poll();
}
@@ -54,7 +54,7 @@ hd44780_xmit_bits(uint8_t toggle, struct gpio_out e, struct gpio_out d4
gpio_out_toggle(d6);
if (toggle & 0x80)
gpio_out_toggle(d7);
- ndelay(230);
+ ndelay(nsecs_to_ticks(230));
gpio_out_toggle(e);
}
@@ -65,7 +65,7 @@ hd44780_xmit_byte(struct hd44780 *h, uint8_t data)
struct gpio_out e = h->e, d4 = h->d4, d5 = h->d5, d6 = h->d6, d7 = h->d7;
hd44780_xmit_bits(h->last ^ data, e, d4, d5, d6, d7);
h->last = data << 4;
- ndelay(500 - 230);
+ ndelay(nsecs_to_ticks(500 - 230));
hd44780_xmit_bits(data ^ h->last, e, d4, d5, d6, d7);
}