Datasheet

LTC2483
29
2483fc
applicaTions inFormaTion
/*
LTC2483.c
Basic voltmeter test program for LTC2483
Reads LTC2483, converts result to volts,
and prints voltage to a 2 line by 16 character LCD display.
Mark Thoren
Linear Technology Corporation
June 23, 2005
Written for CCS PCM compiler, Version 3.182
*/
#include “LTC248X.h”
/*** read_LTC2483() ************************************************************
This is the function that actually does all the work of talking to the LTC2483.
Arguments: addr - device address
Returns: zero if conversion is in progress,
32 bit signed integer with lower 8 bits clear, 24 bit LTC2483
output word in the upper 24 bits. Data is left-justied for
compatibility with the 24 bit LTC2485.
the i2c_xxxx() functions do the following:
void i2c_start(void): generate an i2c start or repeat start condition
void i2c_stop(void): generate an i2c stop condition
char i2c_read(boolean): return 8 bit i2c data while generating an ack or nack
boolean i2c_write(): send 8 bit i2c data and return ack or nack from slave device
These functions are very compiler specic, and can use either a hardware i2c
port or software emulation of an i2c port. This example uses software emulation.
A good starting point when porting to other processors is to write your own
i2c functions. Note that each processor has its own way of conguring
the i2c port, and different compilers may or may not have built-in functions
for the i2c port.
When in doubt, you can always write a “bit bang” function for troubleshooting
purposes.
The “fourbytes” structure allows byte access to the 32 bit return value:
struct fourbytes // Dene structure of four consecutive bytes
{ // To allow byte access to a 32 bit int or oat.
int8 te0; //
int8 te1; // The make32() function in this compiler will
int8 te2; // also work, but a union of 4 bytes and a 32 bit int
int8 te3; // is probably more portable.
};
*******************************************************************************/
signed int32 read_LTC2483(char addr)
{
struct fourbytes // Dene structure of four consecutive bytes
{ // To allow byte access to a 32 bit int or oat.
int8 te0; //
int8 te1; // The make32() function in this compiler will
int8 te2; // also work, but a union of 4 bytes and a 32 bit int
int8 te3; // is probably more portable.
};