Difference between revisions of "Example egpc"
(→Using egpc) |
(→Using egpc) |
||
Line 46: | Line 46: | ||
Returns the current configuration if no mask is specified.<br /> | Returns the current configuration if no mask is specified.<br /> | ||
'''mask''' is an input/output bitmask. 1=output and 0=input.<br /> | '''mask''' is an input/output bitmask. 1=output and 0=input.<br /> | ||
− | For example, this sets every other pin on PortA to be an output. | + | For example, this sets every other pin on PortA to be an output.<br /> |
./egpc /dev/porta c 0xaa | ./egpc /dev/porta c 0xaa | ||
Line 53: | Line 53: | ||
./egpc /dev/porta c | ./egpc /dev/porta c | ||
+ | |||
+ | '''d''' (mask)<br /> | ||
+ | If '''mask''' is specified then it sets each bit's corresponding pin output latch to high/low accordingly. | ||
+ | If '''mask''' is not specified then the current pin state is retrieved. | ||
+ | "ex: \n" | ||
+ | "egp /dev/egpio1 d 0xff \n" | ||
+ | "writes the ouput latch all high \n" | ||
+ | "egp /dev/egpio1 d \n" | ||
+ | "reads the current pin state | ||
===Usage Example. Writing to Port C=== | ===Usage Example. Writing to Port C=== |
Revision as of 13:43, 27 December 2013
This is a guide to the egpc
C example project included in the EMAC OE SDK.
egpc
is an application for reading/writing/configuring gpio character devices. Specifically, we read/write/configure the 3 ports (ports A, B and C) on the GPIO header.
The egpc
project builds one executable: egpc
.
Contents
Opening, Building and Uploading the Project Files
1. Open the C/C++ editing perspective.
stub
2. Open the project files.
stub
3. Build the project.
stub
4. Upload the executables to the target system.
stub
Usage and Behavior
egpc
reads/writes/configures the GPIO ports.
Hardware Requirements
The egpc
C example project will run on any EMAC carrier board.
Using egpc
./egpc device d/c/i (mask)
device is /dev/porta, /dev/portb or /dev/portc
d/c/i specifies the port command : d(data), c(configure) or i(index)
mask is a bitmask in hex format in range [0x0,0xff].
Our three commands work like this:
c (mask)
Configures the pins for input/output if a mask is specified.
Returns the current configuration if no mask is specified.
mask is an input/output bitmask. 1=output and 0=input.
For example, this sets every other pin on PortA to be an output.
./egpc /dev/porta c 0xaa
...and this reads the current pin configuration state of PortA.
./egpc /dev/porta c
d (mask)
If mask is specified then it sets each bit's corresponding pin output latch to high/low accordingly.
If mask is not specified then the current pin state is retrieved.
"ex: \n" "egp /dev/egpio1 d 0xff \n" "writes the ouput latch all high \n" "egp /dev/egpio1 d \n" "reads the current pin state
Usage Example. Writing to Port C
We write a data bitmask to Port C. The values are rendered in our LED strip. (note that only PortC is displayed in the LED strip. Ports A or B would require kind of device to read them; a multimeter or oscilloscope or something like that.)
./egpc /dev/portc d 0x55
LEDs 1-8 are lit: 10101010
MIKE I was thinking that maybe we could have some kind of general purpose "know your board" images (I have created a few) or wiki pages. They would point out things like the GPIO header and the LED strip.
./egpc /dev/portc d 0xaa
LEDs 1-8 are lit: 01010101