diff --git a/include/driver/lm75.h b/include/driver/lm75.h index 5bb92fa4e547bdf2020c8a71e3e544e9d574063d..693578af8e5c8926bef321e3a5680dbe392aa2d7 100644 --- a/include/driver/lm75.h +++ b/include/driver/lm75.h @@ -16,6 +16,8 @@ class LM75 { unsigned int getHyst(); void setOS(unsigned char os); void setHyst(unsigned char hyst); + void init(); + void shutdown(); }; extern LM75 lm75; diff --git a/model/driver/lm75.dfa b/model/driver/lm75.dfa new file mode 100644 index 0000000000000000000000000000000000000000..5aadb8f635e0d649eea8f30de170976cc46efebb --- /dev/null +++ b/model/driver/lm75.dfa @@ -0,0 +1,35 @@ +instance: lm75 + +parameters: + - os + - hyst + +states: + - UNINITIALIZED + - POWEROFF + - ACTIVE + +transition: + shutdown: + src: [UNINITIALIZED, POWEROFF, ACTIVE] + dst: POWEROFF + init: + src: [UNINITIALIZED, POWEROFF, ACTIVE] + dst: ACTIVE + getTemp: + src: [ACTIVE] + dst: ACTIVE + setOS: + src: [ACTIVE] + dst: ACTIVE + arguments: + - name: os + values: [30, 90] + parameter: os + setHyst: + src: [ACTIVE] + dst: ACTIVE + arguments: + - name: hyst + values: [29, 60] + parameter: hyst diff --git a/src/driver/lm75.cc b/src/driver/lm75.cc index 83b2dcf1ed7236fdc8c537089da660bf484f22b8..2223137de045b9ebec0bfaa1667c880cf53f9d7b 100644 --- a/src/driver/lm75.cc +++ b/src/driver/lm75.cc @@ -49,4 +49,18 @@ void LM75::setHyst(unsigned char hyst) i2c.xmit(address, 3, txbuf, 0, rxbuf); } +void LM75::init() +{ + txbuf[0] = 0x01; + txbuf[1] = 0x00; + i2c.xmit(address, 2, txbuf, 0, rxbuf); +} + +void LM75::shutdown() +{ + txbuf[0] = 0x01; + txbuf[1] = 0x01; + i2c.xmit(address, 2, txbuf, 0, rxbuf); +} + LM75 lm75(0x48);