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-justied 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 specic, 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 conguring
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 // Dene 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 // Dene 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.
};