Digi RCM4000 Dynamic C Function Calls, Digital I/O, Serial Communication Drivers, Sram Use

Models: RCM4000

1 124
Download 124 pages 43.01 Kb
Page 49
Image 49

5.2 Dynamic C Function Calls

5.2.1 Digital I/O

The RCM4000 was designed to interface with other systems, and so there are no drivers written specifically for the I/O. The general Dynamic C read and write functions allow you to customize the parallel I/O to meet your specific needs. For example, use

WrPortI(PEDDR, &PEDDRShadow, 0x00);

to set all the Port E bits as inputs, or use

WrPortI(PEDDR, &PEDDRShadow, 0xFF);

to set all the Port E bits as outputs.

When using the auxiliary I/O bus on the Rabbit 4000 chip, add the line

#define PORTA_AUX_IO // required to enable auxiliary I/O bus

to the beginning of any programs using the auxiliary I/O bus.

The sample programs in the Dynamic C SAMPLES/RCM4000 folder provide further examples.

5.2.2 Serial Communication Drivers

Library files included with Dynamic C provide a full range of serial communications sup- port. The RS232.LIB library provides a set of circular-buffer-based serial functions. The PACKET.LIB library provides packet-based serial functions where packets can be delimited by the 9th bit, by transmission gaps, or with user-defined special characters. Both libraries provide blocking functions, which do not return until they are finished transmitting or receiving, and nonblocking functions, which must be called repeatedly until they are fin- ished, allowing other functions to be performed between calls. For more information, see the Dynamic C Function Reference Manual and Technical Note TN213, Rabbit Serial Port Software.

5.2.3 SRAM Use

The RCM4000 module has a battery-backed data SRAM and a program-execution SRAM. Dynamic C provides the protected keyword to identify variables that are to be placed into the battery-backed SRAM. The compiler generates code that maintains two copies of each protected variable in the battery-backed SRAM. The compiler also generates a flag to indicate which copy of the protected variable is valid at the current time. This flag is also stored in the battery-backed SRAM. When a protected variable is updated, the “inactive” copy is modified, and is made “active” only when the update is 100% complete. This assures the integrity of the data in case a reset or a power failure occurs during the update process. At power-on the application program uses the active copy of the variable pointed to by its associated flag.

User’s Manual

43

Page 49
Image 49
Digi RCM4000 user manual Dynamic C Function Calls, Digital I/O, Serial Communication Drivers, Sram Use