update hostname and MQTT broker
This commit is contained in:
50
lib/IP5306/IP5306.cpp
Normal file
50
lib/IP5306/IP5306.cpp
Normal file
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
IP5306.cpp - Library for IP5306_I2C Power controller.
|
||||
Created by Sebastian Haap, December 3, 2019.
|
||||
Based on https://gist.github.com/me-no-dev/7702f08dd578de5efa47caf322250b57
|
||||
*/
|
||||
|
||||
#include "Wire.h"
|
||||
#include "IP5306.h"
|
||||
|
||||
int ip5306_get_reg(uint8_t reg){
|
||||
Wire.beginTransmission(0x75);
|
||||
Wire.write(reg);
|
||||
if(Wire.endTransmission(false) == 0 && Wire.requestFrom(0x75, 1)){
|
||||
return Wire.read();
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int ip5306_set_reg(uint8_t reg, uint8_t value){
|
||||
Wire.beginTransmission(0x75);
|
||||
Wire.write(reg);
|
||||
Wire.write(value);
|
||||
if(Wire.endTransmission(true) == 0){
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
uint8_t ip5306_get_bits(uint8_t reg, uint8_t index, uint8_t bits){
|
||||
int value = ip5306_get_reg(reg);
|
||||
if(value < 0){
|
||||
//Serial.printf("ip5306_get_bits fail: 0x%02x\n", reg);
|
||||
return 0;
|
||||
}
|
||||
return (value >> index) & ((1 << bits)-1);
|
||||
}
|
||||
|
||||
void ip5306_set_bits(uint8_t reg, uint8_t index, uint8_t bits, uint8_t value){
|
||||
uint8_t mask = (1 << bits) - 1;
|
||||
int v = ip5306_get_reg(reg);
|
||||
if(v < 0){
|
||||
//Serial.printf("ip5306_get_reg fail: 0x%02x\n", reg);
|
||||
return;
|
||||
}
|
||||
v &= ~(mask << index);
|
||||
v |= ((value & mask) << index);
|
||||
if(ip5306_set_reg(reg, v)){
|
||||
//Serial.printf("ip5306_set_bits fail: 0x%02x\n", reg);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user