Nxp Semiconductors UM10237 用户手册

下载
页码 792
UM10237_2
© NXP B.V. 2008. All rights reserved.
User manual
Rev. 02 — 19 December 2008 
209 of 792
NXP Semiconductors
UM10237
Chapter 10: LPC24XX General Purpose Input/Output (GPIO)
7.3 Writing to IOSET/IOCLR vs. IOPIN
Write to the IOSET/IOCLR register allows easy change of the port’s selected output pin(s) 
to high/low level at a time. Only pin/bit(s) in the IOSET/IOCLR written with 1 will be set to 
high/low level, while those written as 0 will remain unaffected. However, by just writing to 
either IOSET or IOCLR register it is not possible to instantaneously output arbitrary binary 
data containing a mixture of 0s and 1s on a GPIO port.
Write to the IOPIN register enables instantaneous output of a desired content on the 
parallel GPIO. Binary data written into the IOPIN register will affect all output configured 
pins of that parallel port: 0s in the IOPIN will produce low level pin outputs and 1s in IOPIN 
will produce high level pin outputs. In order to change output of only a group of port’s pins, 
application must logically AND readout from the IOPIN with mask containing 0s in bits 
corresponding to pins that will be changed, and 1s for all others. Finally, this result has to 
be logically ORred with the desired content and stored back into the IOPIN register. 
Example 2 from above illustrates output of 0xA5 on PORT0 pins 15 to 8 while preserving 
all other PORT0 output pins as they were before.
7.4 Output signal frequency considerations when using the legacy and 
enhanced GPIO registers
The enhanced features of the fast GPIO ports available on this microcontroller make 
GPIO pins more responsive to the code that has task of controlling them. In particular, 
software access to a GPIO pin is 3.5 times faster via the fast GPIO registers than it is 
when the legacy set of registers is used. As a result of the access speed increase, the 
maximum output frequency of the digital pin is increased 3.5 times, too. This tremendous 
increase of the output frequency is not always that visible when a plain C code is used, 
and a portion of an application handling the fast port output might have to be written in  
assembly code and executed in the ARM mode.