Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

Re: Writing to IOPIN on LPC21xx possible?

2005-01-04 by Gus

I never used IOPIN to set pins. I only use it to read status. This 
doesn't mean that it is not possible. But it is a good practice to 
ise IOCLR and IOSET because you are accessing the latches of the 
pins directly. Consider this, IOPIN=IOPIN|1; this will happen as 
read-medefy-write now, when you read IOPIN, you are reading the 
actual state of the pin and if for some reason a load on that pin 
that caused it to be in the wrong state (it is 1 but was read as 0)
that means after read-medify-write, the pin that you didn't want to 
change got changed.

So, only use IOPIN to write not to read-modefy-write, safer.

Gus

--- In lpc2000@yahoogroups.com, "Aalt Lokhorst" <lokhorst@s...> 
wrote:
> Hello All,
> 
> In the Philips document 'UM_LPC21XX_LPC22XX_2.pdf' on page 137 I 
read:
> 
>    Applications that require instanatneous appearance of zeros and 
ones
>    on the respected parallel port can use direct access to port's
>    corresponding GPIO Pin Value Register (IOPIN).
>    Assuming that pins P0.8 to P0.15 are configured as output, 
write to 
>    IO0PIN:
> 
>      IO0PIN = 0x0000 C700
> 
>    will produce the same output as following sequence of writes:
> 
>      IO0SET = 0x0000 C700
>      IO0CLR = 0x0000 3800
> 
>    Solution utilizing access to IO0SET and IO0CLR will take more 
steps
>    compared to a single IO0PIN write access.
> 
> The same document shows on page 135 that IO#PIN is a ReadOnly 
register.
> 
> Am I missing something, how can you write to a ReadOnly register?
> 
> Best Regards,
> 
> -- ==============================
> Aalt Lokhorst
> Schut Geometrische Meettechniek bv
> Duinkerkenstraat 21
> 9723 BN Groningen
> P.O. Box 5225
> 9700 GE Groningen
> The Netherlands
> Tel: +31-50-5877877
> Fax: +31-50-5877899
> E-mail: Lokhorst@S...
> ==============================

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.