Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: HT1632MsgScroller SMS_LEDMatrixPrinter
Diff: HT1632_LedMatrix.cpp
- Revision:
- 6:80f554fd77a0
- Parent:
- 5:33b2bfce06b7
- Child:
- 8:61130f9b5b79
diff -r 33b2bfce06b7 -r 80f554fd77a0 HT1632_LedMatrix.cpp
--- a/HT1632_LedMatrix.cpp Mon Nov 12 23:13:04 2012 +0000
+++ b/HT1632_LedMatrix.cpp Tue Nov 20 13:08:43 2012 +0000
@@ -1,7 +1,6 @@
-/***********************************************************************
- * HT1632_LedMatrix.cpp - Library for Holtek HT1632 LED driver chip,
- * As implemented on the Sure Electronics DE-DP10X display board
- * (8 x 32 dot matrix LED module.)
+/** Library for Holtek HT1632 LED driver chip,
+ * As implemented on the Sure Electronics DE-DP10X display board
+ * 8 x 32 dot matrix LED module.)
*
* Original code by:
* Nov, 2008 by Bill Westfield ("WestfW")
@@ -13,7 +12,35 @@
* Arduino Library Created and updated by Andrew Lindsay October/November 2009
*
* Ported to Mbed platform by Andrew Lindsay, November 2012
- ***********************************************************************/
+ *
+ * @author Andrew Lindsay
+ *
+ * @section LICENSE
+ *
+ * Copyright (c) 2012 Andrew Lindsay (andrew [at] thiseldo [dot] co [dot] uk)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * @section DESCRIPTION
+ * Functions to drive displays
+ *
+ */
#include "mbed.h"
#include "HT1632_LedMatrix.h"
@@ -23,24 +50,18 @@
#define LOW 0
/*
* Set these constants to the values of the pins connected to the SureElectronics Module
- * NOTE - these are different from the original demo code by westfw
- *
- * Use Pin Mappings 8-11 for CS1 to 4, 12 for Data and 13 for Clock
- * Use mixture of #define and variables.
- * Pin numbers are for setup and port identifiers are for direct port writes.
+ * For mbed, use WR=p7, DATA=p5, cs1=p17, cs2=p18, cs3=p19, cs4=p20
*/
-// For mbed, use WR=p7, DATA=p5, cs1=p17, cs2=p18, cs3=p19, cs4=p20
-
-DigitalOut ht1632_wrclk(p7); // For Test : Led1 is Clock
-DigitalOut ht1632_data(p5); // Led2 is Data ....
+DigitalOut ht1632_wrclk(p7);
+DigitalOut ht1632_data(p5);
DigitalOut ht1632_cs1(p17);
DigitalOut ht1632_cs2(p18);
DigitalOut ht1632_cs3(p19);
DigitalOut ht1632_cs4(p20);
// CS pins 17, 18, 19, 20 used.
-DigitalOut ht1632_cs[4] = {p17, p18, p19, p20}; // Chip Select (1, 2, 3, or 4)
+DigitalOut ht1632_cs[4] = {p17, p18, p19, p20}; // Chip Select (1, 2, 3, 4)
// helper macros
#define chip_number(x,y) (x >> 5) + (y >> 3)*numYDevices
@@ -117,14 +138,16 @@
cursorY = 0;
}
-void HT1632_LedMatrix::displayOff( void ) {
+void HT1632_LedMatrix::displayOff( void )
+{
for (uint8_t chipno=0; chipno<4; chipno++) {
chipfree(chipno); // unselect it
sendcmd(chipno, HT1632_CMD_LEDOFF); // LEDs on
}
}
-void HT1632_LedMatrix::displayOn( void ) {
+void HT1632_LedMatrix::displayOn( void )
+{
for (uint8_t chipno=0; chipno<4; chipno++) {
chipfree(chipno); // unselect it
sendcmd(chipno, HT1632_CMD_LEDON); // LEDs on
@@ -180,11 +203,6 @@
while (count) {
ht1632_wrclk = LOW;
ht1632_data = bits & 1;
-// if (bits & 1) {
-// ht1632_data = HIGH;
-// } else {
-// ht1632_data = LOW;
-// }
ht1632_wrclk = HIGH;
count--;
bits >>= 1;
@@ -449,14 +467,14 @@
for (int i=xMax-numberCols; i<xMax; i++) {
shadowram[i]=0;
}
-/*
- for (int i=0; i<128-numberCols-1; i++) {
- shadowram[i]=shadowram[i+numberCols];
- }
- for (int i=128-numberCols; i<128; i++) {
- shadowram[i]=0;
- }
-*/
+ /*
+ for (int i=0; i<128-numberCols-1; i++) {
+ shadowram[i]=shadowram[i+numberCols];
+ }
+ for (int i=128-numberCols; i<128; i++) {
+ shadowram[i]=0;
+ }
+ */
cursorX -= numberCols;
if (cursorX < 0 ) cursorX = 0;
}