From 3d279d4d2527bdc9a5a4ca301d7bd9858e7ba100 Mon Sep 17 00:00:00 2001 From: Neil Davis Date: Wed, 23 Feb 2022 17:02:40 +0000 Subject: [PATCH] Add a SetIntensity() function to max7xx driver and example. Also remove redundant byte() casts from SetScanLimit() --- examples/max72xx/main.go | 1 + max72xx/max72xx.go | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/examples/max72xx/main.go b/examples/max72xx/main.go index 9569ef7..1c8243c 100644 --- a/examples/max72xx/main.go +++ b/examples/max72xx/main.go @@ -29,6 +29,7 @@ func main() { driver.StopDisplayTest() driver.SetDecodeMode(4) driver.SetScanLimit(4) + driver.SetIntensity(8) driver.StopShutdownMode() for i := 1; i < int(digitNumber); i++ { diff --git a/max72xx/max72xx.go b/max72xx/max72xx.go index 7890d41..27de1b5 100644 --- a/max72xx/max72xx.go +++ b/max72xx/max72xx.go @@ -31,7 +31,16 @@ func (driver *Device) Configure() { // SetScanLimit sets the scan limit. Maximum is 8. // Example: a 4 digit 7SegmentDisplay has a scan limit of 4 func (driver *Device) SetScanLimit(digitNumber uint8) { - driver.WriteCommand(byte(REG_SCANLIMIT), byte(digitNumber-1)) + driver.WriteCommand(REG_SCANLIMIT, digitNumber-1) +} + +// SetIntensity sets the intensity of the diplays. +// There are 16 possible intensity levels. The valid range is 0x00-0x0F +func (driver *Device) SetIntensity(intensity uint8) { + if intensity > 0x0F { + intensity = 0x0F + } + driver.WriteCommand(REG_INTENSITY, intensity) } // SetDecodeMode sets the decode mode for 7 segment displays.