Commit fddb2a02e9feadaefaf690b07a69a1556fb96fd1
authorJakob Gruber <jakob.gruber@gmail.com>
Fri, 20 Jul 2012 12:19:48 +0000 (14:19 +0200)
committerJakob Gruber <jakob.gruber@gmail.com>
Fri, 20 Jul 2012 12:31:26 +0000 (14:31 +0200)
The example itself works both ways, but the actual HD44780 chip
processes data on the falling edge - see the data sheet.

examples/parts/hd44780.c

index 144cbfcecb1ae4fdd3e5a20e1d8e5b2d7f7ae77d..8fe194c4693dbc2be5dc655af9ced2c6bc22c07f 100644 (file)
@@ -340,8 +340,8 @@ hd44780_pin_changed_hook(
        b->pinstate = (b->pinstate & ~(1 << irq->irq)) | (value << irq->irq);
        int eo = old & (1 << IRQ_HD44780_E);
        int e = b->pinstate & (1 << IRQ_HD44780_E);
-       // on the E pin rising edge, do stuff otherwise just exit
-       if (!eo && e)
+       // on the E pin falling edge, do stuff otherwise just exit
+       if (eo && !e)
                avr_cycle_timer_register(b->avr, 1, _hd44780_process_e_pinchange, b);
 }