
33991
MOTOROLA ANALOG INTEGRATED CIRCUIT DEVICE DATA
32
SAMPLE CODE
/* The following example code demonstrates a typical set up configuration for a M68HC912B32. */
/* This code is intended for instructional use only. Motorola assumes no liability for use or */
/* modification of this code. It is the responsibility of the user to verify all parameters, variables,*/
/* timings, etc. */
void InitGauges(void)
{
/* Step 1 */
Command_Gauge(0x00,0x03);
/* Enable Gauges */
Command_Gauge(0x00,0x08);
/* Clock Cal bit set */
/* 8 uSec calibration */
PORTS = 0x00;
/* Enable GDIC CS pin - PORTS2 */
For (cnt = 0; cnt < 5; cnt++)
{
/* Wait for 8 uSec calibration */
NOP;
}
PORTS = 0x04;
/* Disable GDIC CS pin - PORTS2 */
/* Step 2 */
Command_Gauge(0xA0,0x21);
/* Send RTZCR values */
Command_Gauge(0x10,0x00);
/* Null Read to get SO status */
/*Check SO bits for Out of Range Clock Calibration */
If ((status & 0x80) != 0)
/*If Clock is out of range then recalibrate 8 uSec pulse */
/* Step 3 */
Command_Gauge(0x40,0x18);
/* Send position to gauge0 */
/* Step 4 */
Command_Gauge(0x60,0x18);
/* Send position to gauge1 */
/* Check SO bit ST4 to see if Gauge 0 has moved */
If((status & 0x10) != 0)
/* If ST4 is logic 1 then Gauge 0 has moved to the first microstep */
/* Step 5 */
Command_Gauge(0x10,0x00);
/* Null Read to get SO status */
/* Check SO bit ST4 to see if Gauge 0 has moved */
If((status & 0x10) != 0)
/* If it has moved, then keep track of position */
/* Wait until 24 steps are finished then send a RTZ command (Step 7) */
/* Step 6 */
Command_Gauge(0x80,0x02);
/* Send RTZ to Gauge 0 */
/* Step 7 */
Command_Gauge(0x10,0x00);
/* Null Read to get status */
/* Read Status until RTZ is done */
While ((status & 0x04) != 0)
{Command_Gauge(0x10,0x00);}
F
re
e
sc
a
le
S
e
m
ic
o
n
d
u
c
to
r,
I
Freescale Semiconductor, Inc.
For More Information On This Product,
Go to: www.freescale.com
n
c
..
.