
33991
32
Go to: www.freescale.com
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);
Command_Gauge
(0x00,0x08);
/* 8 uSec calibration */
PORTS = 0x00;
For
(cnt = 0; cnt < 5; cnt++)
{
/* Enable Gauges */
/* Clock Cal bit set */
/* Enable GDIC CS pin - PORTS2 */
/* Wait for 8 uSec calibration */
NOP;
}
PORTS = 0x04;
/* Disable GDIC CS pin - PORTS2 */
/* Step 2 */
Command_Gauge
(0xA0,0x21);
Command_Gauge
(0x10,0x00);
/*Check SO bits for Out of Range Clock Calibration */
If
((status & 0x80) != 0)
/*If Clock is out of range then recalibrate 8 uSec pulse */
/* Send RTZCR values */
/* Null Read to get SO status */
/* Step 3 */
Command_Gauge
(0x40,0x18);
/* Send position to gauge0 */
/* Step 4 */
Command_Gauge
(0x60,0x18);
/* 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 */
/* Send position to gauge1 */
/* Step 5 */
Command_Gauge
(0x10,0x00);
/* 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) */
/* Null Read to get SO status */
/* Step 6 */
Command_Gauge
(0x80,0x02);
/* Send RTZ to Gauge 0 */
/* Step 7 */
Command_Gauge
(0x10,0x00);
/* Read Status until RTZ is done */
While
((status & 0x04) != 0)
{
Command_Gauge
(0x10,0x00);}
/* Null Read to get status */
F
Freescale Semiconductor, Inc.
For More Information On This Product,
n
.