Difference between revisions of "Example egpc"

From wiki.emacinc.com
Jump to: navigation, search
(Hardware Requirements)
Line 42: Line 42:
 
'''mask''' is a bitmask in hex format in range [0x0,0xff].  
 
'''mask''' is a bitmask in hex format in range [0x0,0xff].  
  
Our three commands work like this:
+
===Usage Example. Port Configuration===
 
+
If a mask is specified it configures the pins for input/output.<br />
'''c''' (mask)<br />           
+
If no mask is specified it returns the current configuration.<br />   
Configures the pins for input/output if a 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.<br />
+
For example, this sets every other pin on PortA to be an output.  
 
                                          
 
                                          
 
  ./egpc /dev/porta c 0xaa  
 
  ./egpc /dev/porta c 0xaa  
Line 54: Line 52:
 
...and this reads the current pin configuration state of PortA.
 
...and this reads the current pin configuration state of PortA.
  
  ./egpc /dev/porta c
+
  ./egpc /dev/porta c    
 +
0xaa
 +
 
 +
===Usage Example. Port Data===
  
 
'''d''' (mask)<br />             
 
'''d''' (mask)<br />             
If '''mask''' is specified then it sets each bit's corresponding pin output latch to high/low accordingly.
+
If a mask is specified then it sets each bit's corresponding pin output latch to high/low accordingly.<br />
If '''mask''' is not specified then the current pin state is retrieved.
+
If a mask is not specified then the current pin state is retrieved.<br />
        "ex:                                          \n"
+
For example, this writes all pin ouput latches on PortA to high.
        "egp /dev/egpio1  d 0xff                       \n"
+
 
        "writes the ouput latch all high              \n"
+
./egpc /dev/porta d 0xff
        "egp /dev/egpio1  d                           \n"
+
 
         "reads the current pin state
+
...and this reads the current pin data state of PortA
 +
 
 +
./egps /dev/porta d
 +
          
  
 
===Usage Example. Writing to Port C===
 
===Usage Example. Writing to Port C===

Revision as of 13:57, 27 December 2013

TODO: {{#todo:InProgress(11.13.13-14:31->JG+)|Jgreene|oe 4,oe 5,jg,md,InProgress}}

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.

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.

VERIFY THIS

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].

Usage Example. Port Configuration

If a mask is specified it configures the pins for input/output.
If no mask is specified it returns the current configuration.
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     
0xaa

Usage Example. Port Data

d (mask)
If a mask is specified then it sets each bit's corresponding pin output latch to high/low accordingly.
If a mask is not specified then the current pin state is retrieved.
For example, this writes all pin ouput latches on PortA to high.

./egpc /dev/porta d 0xff

...and this reads the current pin data state of PortA

./egps /dev/porta d
       

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