comp.lang.ada
 help / color / mirror / Atom feed
From: Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP>
Subject: Re: Cleanest Ada way to do this?
Date: Mon, 23 Jun 2014 11:57:39 +0000 (UTC)
Date: 2014-06-23T11:57:39+00:00	[thread overview]
Message-ID: <lo94ni$5lm$2@dont-email.me> (raw)
In-Reply-To: 623dacba-5886-4b16-8694-950e7cc5a626@googlegroups.com

On 2014-06-23, rrr.eee.27@gmail.com <rrr.eee.27@gmail.com> wrote:
> On Sunday, June 22, 2014 6:51:01 PM UTC+2, Mike Silva wrote:
>> I'd like some help on the cleanest, or most elegant, way to do this in Ada. I'm writing to an LCD character display, in 4-bit mode, which requires writing an 8 bit character or command value as two 4 bit pieces. The port (a memory address) being written to is 32 bits wide. What I would like to be able to do is some form of this (not valid Ada, I know): Port32(4..7) := Some_Char(4..7); ..twiddle some other control bits.. Port32(4..7) := Some_Char(0..3); ..twiddle some other control bits.. Any thoughts?
>
> You have to drive not only the four data lines but also some Enable or
> RegisterSelect lines (for the standard LCD controller HD44780). Those have to
> be written in parallel. the second nibble (other half of the byte) has to
> follow with specific timing. I recommend a look on lcd.ads, lcd.adb, and
> lcd-wiring.ads from AVR-Ada at
> http://sourceforge.net/p/avr-ada/code/ci/master/tree/avr/lcd/.
>

Dammit. That's something I should have thought to go looking for as well.

I see they are also using Character'Pos for the conversion although they
are also using a more generic approach of treating each data I/O line in
isolation instead of as a related block of 4 contiguous lines.

Simon.

-- 
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world

  reply	other threads:[~2014-06-23 11:57 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-22 16:51 Cleanest Ada way to do this? Mike Silva
2014-06-22 19:07 ` Simon Clubley
2014-06-22 21:20   ` Mike Silva
2014-06-22 21:05 ` Shark8
2014-06-23  0:17   ` Simon Clubley
2014-06-23  6:46     ` hungupharps
2014-06-23  7:32       ` Georg Bauhaus
2014-06-23 11:48         ` Simon Clubley
2014-06-23 15:40           ` G.B.
2014-06-23  9:02 ` rrr.eee.27
2014-06-23 11:57   ` Simon Clubley [this message]
2014-06-23 12:05     ` rrr.eee.27
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox