interface for the temperature sensor chip adt7320, with sw SPI interface
Diff: adt7320.cpp
- Revision:
- 1:1b9f706b8abc
- Parent:
- 0:e252ae2774e8
- Child:
- 2:2b886cea4fcb
diff -r e252ae2774e8 -r 1b9f706b8abc adt7320.cpp --- a/adt7320.cpp Thu Oct 02 19:25:55 2014 +0000 +++ b/adt7320.cpp Sun Oct 05 17:12:21 2014 +0000 @@ -4,7 +4,14 @@ #define CS_ACTIVE 1 #define CS_DEACTIVE 0 -adt7320::adt7320(SWSPI *spiinterface ,DigitalOut* chipselect ){ +#define ADT7320_SRC_VER "1.13" + + + + +adt7320::adt7320(SWSPI *spiinterface ,DigitalOut* chipselect ) +:getVersion( ADT7320_HDR_VER ,ADT7320_SRC_VER , __TIME__, __DATE__) +{ spi=spiinterface; cs=chipselect; } @@ -38,6 +45,18 @@ } + +void adt7320::setR08( u8 reg, u8 datain){ + set_spi_mode(16); + u16 data=0x0000; + u16 cmd = (u16) format_cmd(reg,false); + cmd = cmd <<8; + data= datain | cmd; + cs->write(CS_ACTIVE); + data= spi->write(data); + cs->write(CS_DEACTIVE); +} + u16 adt7320::getR16( u8 reg){ set_spi_mode(24); u32 data=0x0000FFFF; @@ -50,6 +69,18 @@ return (u16)(0x0000FFFF &data); } +void adt7320::setR16( u8 reg,u16 datain){ + set_spi_mode(24); + u32 data=0x00000000; + u32 cmd =(u32) format_cmd(reg,false); + cmd = cmd <<16; + data= datain | cmd; + cs->write(CS_ACTIVE); + data= spi->write(data); + cs->write(CS_DEACTIVE); +} + + u8 adt7320::getId(){ return getR08(0x03); @@ -59,7 +90,20 @@ return getR16(0x04); } +void adt7320::set_TcritSP(u16 tcrit){ + + setR16(0x04,tcrit ); +} + + + u16 adt7320::get_T(){ return getR16(0x02); } + + void adt7320::init1(){} + void adt7320::init2(){} + + +