Mbed driver for adafruit trellis.
Dependents: Adafruit_Trellis_Hello_World
Revision 1:3a43c8b959d8, committed 2016-03-13
- Comitter:
- wliu88
- Date:
- Sun Mar 13 17:31:13 2016 +0000
- Parent:
- 0:bbc12ba2cb6c
- Commit message:
- comments added
Changed in this revision
| Adafruit_Trellis.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/Adafruit_Trellis.h Sun Mar 13 04:59:13 2016 +0000
+++ b/Adafruit_Trellis.h Sun Mar 13 17:31:13 2016 +0000
@@ -1,4 +1,3 @@
-// Set _BV if not already set
#ifndef _BV
#define _BV(bit) (1 << (bit))
#endif
@@ -7,41 +6,112 @@
#define LED_ON 1
#define LED_OFF 0
-
#define HT16K33_BLINK_OFF 0
#define HT16K33_BLINK_2HZ 1
#define HT16K33_BLINK_1HZ 2
#define HT16K33_BLINK_HALFHZ 3
-// this is the raw HT16K33 controller
+/**
+ * A class for Adafruit trellis
+ */
class Adafruit_Trellis {
- public:
- Adafruit_Trellis(void);
- void begin(I2C *_wire, uint8_t _addr);
- void setBrightness(uint8_t b);
- void blinkRate(uint8_t b);
- void writeDisplay(void);
- void clear(void);
-
- bool isLED(uint8_t x);
- void setLED(uint8_t x);
- void clrLED(uint8_t x);
-
- bool isKeyPressed(uint8_t k);
- bool wasKeyPressed(uint8_t k);
- bool readSwitches(void);
- bool justPressed(uint8_t k);
- bool justReleased(uint8_t k);
+public:
+ /**
+ * Create a new trellis object
+ */
+ Adafruit_Trellis(void);
+
+ /**
+ * Initialize the trellis controller
+ * @param _wire Address of an I2C master object
+ * @param _addr Slave address of the trellis controller
+ */
+ void begin(I2C *_wire, uint8_t _addr);
+
+ /**
+ * Set brightness(PWM) of LEDs
+ * @param b Brightness level from 1 to 16 with 16 being the brightest
+ */
+ void setBrightness(uint8_t b);
+
+ /**
+ * Set blink rate of LEDs
+ * @param b Blink rate defined as macros
+ */
+ void blinkRate(uint8_t b);
+
+ /**
+ * Write to LEDs after set and clear status of LEDs
+ */
+ void writeDisplay(void);
+
+ /**
+ * Set all LEDs to off
+ */
+ void clear(void);
+
+ /**
+ * Check status of LED
+ * @param x LED index (1-16)
+ * @return 1 for on, 0 for off
+ */
+ bool isLED(uint8_t x);
+
+ /**
+ * Set LED status to on
+ * @param x LED index (1-16)
+ */
+ void setLED(uint8_t x);
- uint16_t displaybuffer[8];
-
- void init(uint8_t a);
+ /**
+ * Set LED status to off
+ * @param x LED index (1-16)
+ */
+ void clrLED(uint8_t x);
- private:
- uint8_t keys[6], lastkeys[6];
+ /**
+ * Check if button is pressed
+ * @param k button index (1-16)
+ * @return 1 for pressed, 0 for not pressed
+ */
+ bool isKeyPressed(uint8_t k);
+
+ /**
+ * Check if button was pressed
+ * @param k button index (1-16)
+ * @return 1 for pressed, 0 for not pressed
+ */
+ bool wasKeyPressed(uint8_t k);
+
+ /**
+ * Update all buttons' status, need to be called before checking buttons' status
+ * @return 1 for any button has been switched, 0 otherwise
+ */
+ bool readSwitches(void);
- uint8_t i2c_addr;
- char cmd[20];
- I2C *wire;
-};
+ /**
+ * Check if button was just pressed
+ * @param k button index (1-16)
+ * @return 1 for pressed, 0 for not pressed
+ */
+ bool justPressed(uint8_t k);
+
+ /**
+ * Check if button was just released
+ * @param k button index (1-16)
+ * @return 1 for released, 0 for not released
+ */
+ bool justReleased(uint8_t k);
+
+ uint16_t displaybuffer[8];
+
+ void init(uint8_t a);
+
+private:
+ uint8_t keys[6], lastkeys[6];
+
+ uint8_t i2c_addr;
+ char cmd[20];
+ I2C *wire;
+};
\ No newline at end of file