5.10Programming Example

The following C program segment demonstrates how to program an IOP-241 located at I/O base address 300h. Port A will be programmed as output, and 55h will be latched at Port A. Port B will be configured with it's upper 3 bits as output and it's lower five bits as input. The upper three bits will be latched with 010b. Port C will be configured as input. Interrupts will be enabled as explained in the program comments.

outp(0x300,0x55);

/* writes 55h to Port A */

outp(0x301,0x5F);

/* writes 010b to Port B upper 3 bits*/

/* sets Port B lower 5 bits for input */

outp(0x302,0xFF);

/* initializes Port C for input */

Port_B = inp(0x301);

/* reads data from Port B */

/* Port_B(bit7) = '0' and Port_B(bit5) = '0' due to 'masking' */ Port_C = inp(0x302); /* reads data from Port C */

outp(0x306,0x76);

/* INT7 - INT4 set for Level Sensitive Active High Interrupt Mode */

/* INT3 - INT0 set for Edge Sensitive High-to-low Transition Interrupt Source */

/* External Interrupt Source Enabled */

/* External Interrupt Source set for Low-to-high Edge Sensitive Interrupt Source*/

outp(0x305,0x77);

/* Enables six Port C interrupt sources */

/* Enables INT6,INT5,INT4,INT2,INT1,INT0 */

IOP-241 Users Manual

31

Page 31
Image 31
Omega Engineering IOP-241 user manual Programming Example