lm75.c

来自「CVAVR的函数库的源代码。开发AVR的编译器CodeVision AVR最新版」· C语言 代码 · 共 58 行

C
58
字号
/*
  National Semiconductor LM75 I2C bus
  temperature sensor functions

  CodeVisionAVR C Compiler
  (C) 1998-2004 Pavel Haiduc, HP InfoTech S.R.L.
*/

#include <i2c.h>

union lm75_temp {
                unsigned char b[2];
                int w;
                };

void lm75_set_temp(unsigned char i2c_addr,unsigned char ptr,char data)
{
i2c_start();
i2c_write(i2c_addr);
i2c_write(ptr);
i2c_write(data);
i2c_write(0);
i2c_stop();
}

void lm75_init(unsigned char chip,signed char thyst,signed char tos,
unsigned char pol)
{
unsigned char i2c_addr;
i2c_addr=0x90|(chip<<1);
//set configuration register
i2c_start();
i2c_write(i2c_addr);
i2c_write(1);
i2c_write(pol<<2);
i2c_stop();
//set hysterezis temperature
lm75_set_temp(i2c_addr,2,thyst);
//set O.S. temperature
lm75_set_temp(i2c_addr,3,tos);
}

int lm75_temperature_10(unsigned char chip)
{
union lm75_temp tt;
unsigned char i2c_addr;
i2c_addr=0x90|(chip<<1);
i2c_start();
i2c_write(i2c_addr);
i2c_write(0);
i2c_start();
i2c_write(++i2c_addr);
tt.b[1]=i2c_read(1);
tt.b[0]=i2c_read(0);
i2c_stop();
return (tt.w>>7)*5;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?