void Emutex_MAX9657::testLedOutputs(bool y) { if (!initialised) return; if (mode != MAX9657_MODE_CCLED) return; writeConfigReg(ADDR_DISP_TEST, y ? DISPLAY_TEST_ON : DISPLAY_TEST_OFF); }
void Emutex_MAX9657::setLedIntensity(byte intensity) { if (!initialised) return; if (mode != MAX9657_MODE_CCLED) return; if (intensity >= 0 || intensity < 16) writeConfigReg(ADDR_G_CURRENT, intensity); }
void Thermal_init(){ I2C_init(THERMAL_I2C_ID,I2C_CLOCK_FREQ); count = 0; readEeprom(); writeTrimmingValue(); writeConfigReg(); readConfigReg(); configCalculationData(); Timer_new(TIMER_THERMAL,READ_DELAY); }
void Emutex_MAX9657::end() { writeConfigReg(ADDR_CONFIG, CONFIG_SHUTDOWN_ON); }
void Emutex_MAX9657::begin() { if (!initialised) { // Configure the SPI bus pinMode(cs, OUTPUT); digitalWrite(cs, HIGH); SPI.begin(); SPI.setDataMode(SPI_MODE0); SPI.setBitOrder(MSBFIRST); SPI.setClockDivider(SPI_CLOCK_DIV4); // Using 4MHz default, but MAX9657 can support up to 26MHz if (mode == MAX9657_MODE_CCLED) { // Configure all outputs as full-strength (24mA) constant-current LED drivers // NOTE 1: In this mode, the pins are open-drain current sink, for connection to LED cathodes // NOTE 2: If using a 5V supply, the datasheet recommends using an 82ohm resistor in series // with each LED and limiting the current drive strength to 20mA. So we set default // drive strength here at 19.5mA. Use ::setIntensity(15) to change if needed. // If using a 3.3V supply, 24mA drive strength can be used with no series resistors writeConfigReg(ADDR_G_CURRENT, CURRENT_DRIVE_DFLT); writeConfigReg(ADDR_CFG_P7_4, PORT_CFG_LED_DRIVER); writeConfigReg(ADDR_CFG_P11_8, PORT_CFG_LED_DRIVER); writeConfigReg(ADDR_CFG_P15_12, PORT_CFG_LED_DRIVER); writeConfigReg(ADDR_CFG_P19_16, PORT_CFG_LED_DRIVER); writeConfigReg(ADDR_CFG_P23_20, PORT_CFG_LED_DRIVER); writeConfigReg(ADDR_CFG_P27_24, PORT_CFG_LED_DRIVER); writeConfigReg(ADDR_CFG_P31_28, PORT_CFG_LED_DRIVER); } else if (mode == MAX9657_MODE_OUTPUT) { writeConfigReg(ADDR_CFG_P7_4, PORT_CFG_GPIO_OUT); writeConfigReg(ADDR_CFG_P11_8, PORT_CFG_GPIO_OUT); writeConfigReg(ADDR_CFG_P15_12, PORT_CFG_GPIO_OUT); writeConfigReg(ADDR_CFG_P19_16, PORT_CFG_GPIO_OUT); writeConfigReg(ADDR_CFG_P23_20, PORT_CFG_GPIO_OUT); writeConfigReg(ADDR_CFG_P27_24, PORT_CFG_GPIO_OUT); writeConfigReg(ADDR_CFG_P31_28, PORT_CFG_GPIO_OUT); } else { /* MAX9657 Input Modes unsupported in current version */ return; } initialised = true; } // Write default configuration (shutdown, global current control, no transition detect) writeConfigReg(ADDR_CONFIG, CONFIG_SHUTDOWN_OFF); }