123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- #include "porthub.h"
- PortHub::PortHub() {}
- PortHub::PortHub(uint8_t iic_addr) { _iic_addr = iic_addr; }
- void PortHub::begin() { Wire.begin(); }
- uint16_t PortHub::hub_a_read_value(uint8_t reg) {
- Wire.beginTransmission(_iic_addr);
- Wire.write(reg | 0x06);
- Wire.endTransmission();
- uint8_t RegValue_L, RegValue_H;
- Wire.requestFrom(_iic_addr, 2);
- while (Wire.available()) {
- RegValue_L = Wire.read();
- RegValue_H = Wire.read();
- }
- return (RegValue_H << 8) | RegValue_L;
- }
- uint8_t PortHub::hub_d_read_value_A(uint8_t reg) {
- Wire.beginTransmission(_iic_addr);
- Wire.write(reg | 0x04);
- Wire.endTransmission();
- uint8_t RegValue;
- Wire.requestFrom(_iic_addr, 1);
- while (Wire.available()) {
- RegValue = Wire.read();
- }
- return RegValue;
- }
- uint8_t PortHub::hub_d_read_value_B(uint8_t reg) {
- Wire.beginTransmission(_iic_addr);
- Wire.write(reg | 0x05);
- Wire.endTransmission();
- uint8_t RegValue;
- Wire.requestFrom(_iic_addr, 1);
- while (Wire.available()) {
- RegValue = Wire.read();
- }
- return RegValue;
- }
- void PortHub::hub_d_wire_value_A(uint8_t reg, uint16_t level) {
- Wire.beginTransmission(_iic_addr);
- Wire.write(reg | 0x00);
- Wire.write(level & 0xff);
- Wire.endTransmission();
- }
- void PortHub::hub_d_wire_value_B(uint8_t reg, uint16_t level) {
- Wire.beginTransmission(_iic_addr);
- Wire.write(reg | 0x01);
- Wire.write(level & 0xff);
- Wire.endTransmission();
- }
- void PortHub::hub_a_wire_value_A(uint8_t reg, uint16_t duty) {
- Wire.beginTransmission(_iic_addr);
- Wire.write(reg | 0x02);
- Wire.write(duty & 0xff);
- Wire.endTransmission();
- }
- void PortHub::hub_a_wire_value_B(uint8_t reg, uint16_t duty) {
- Wire.beginTransmission(_iic_addr);
- Wire.write(reg | 0x03);
- Wire.write(duty & 0xff);
- Wire.endTransmission();
- }
- void PortHub::hub_wire_length(uint8_t reg, uint16_t length) {
- Wire.beginTransmission(_iic_addr);
- Wire.write(reg | 0x08);
- Wire.write(length & 0xff);
- Wire.write(length >> 8);
- Wire.endTransmission();
- }
- void PortHub::hub_wire_index_color(uint8_t reg, uint16_t num, uint8_t r,
- int8_t g, uint8_t b) {
- Wire.beginTransmission(_iic_addr);
- Wire.write(reg | 0x09);
- Wire.write(num & 0xff);
- Wire.write(num >> 8);
- Wire.write(r);
- Wire.write(g);
- Wire.write(b);
- Wire.endTransmission();
- }
- void PortHub::hub_wire_fill_color(uint8_t reg, uint16_t first, uint16_t count,
- uint8_t r, int8_t g, uint8_t b) {
- Wire.beginTransmission(_iic_addr);
- Wire.write(reg | 0x0a);
- Wire.write(first & 0xff);
- Wire.write(first >> 8);
- Wire.write(count & 0xff);
- Wire.write(count >> 8);
- Wire.write(r);
- Wire.write(g);
- Wire.write(b);
- Wire.endTransmission();
- }
- void PortHub::hub_wire_setBrightness(uint8_t reg, uint8_t brightness) {
- Wire.beginTransmission(_iic_addr);
- Wire.write(reg | 0x0b);
- Wire.write(brightness & 0xff);
- Wire.endTransmission();
- }
|