Test for HCMS2975 Alphanumeric LED display

Dependencies:   HCMS2975 mbed

Testcode for HCMS2975 alphanumeric LED displays.

Committer:
wim
Date:
Mon Jan 05 20:37:37 2015 +0000
Revision:
1:feaf55287b27
Parent:
0:6bfe606278c7
Fixed setBrightness() at init()

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wim 0:6bfe606278c7 1 /**
wim 0:6bfe606278c7 2 * @file main.cpp
wim 0:6bfe606278c7 3 * @brief mbed Avago/HP HCMS2975 LED matrix display Library test.
wim 0:6bfe606278c7 4 * @author WH
wim 0:6bfe606278c7 5 * @date Copyright (c) 2014
wim 0:6bfe606278c7 6 * v01: WH, Initial release
wim 0:6bfe606278c7 7 * Info available at http://playground.arduino.cc/Main/LedDisplay and http://www.pjrc.com/teensy/td_libs_LedDisplay.html
wim 0:6bfe606278c7 8 */
wim 0:6bfe606278c7 9 #include "mbed.h"
wim 0:6bfe606278c7 10 #include "HCMS2975.h"
wim 0:6bfe606278c7 11
wim 0:6bfe606278c7 12 // mbed Interface Hardware definitions
wim 0:6bfe606278c7 13 DigitalOut myled1(LED1);
wim 0:6bfe606278c7 14 DigitalOut myled2(LED2);
wim 0:6bfe606278c7 15 DigitalOut myled3(LED3);
wim 0:6bfe606278c7 16 DigitalOut heartbeatLED(LED4);
wim 0:6bfe606278c7 17
wim 0:6bfe606278c7 18 // Host PC Communication channels
wim 0:6bfe606278c7 19 Serial pc(USBTX, USBRX);
wim 0:6bfe606278c7 20
wim 0:6bfe606278c7 21 // SPI Communication
wim 0:6bfe606278c7 22 SPI spi_led(p5, NC, p7); // MOSI, MISO, SCLK
wim 0:6bfe606278c7 23
wim 0:6bfe606278c7 24 //Display
wim 0:6bfe606278c7 25 //HCMS2975 led(&spi_led, p8, p9, NC, HCMS2975::LED8x1); // SPI bus, CS pin, RS pin, RST pin, LEDType = Ok
wim 1:feaf55287b27 26 //HCMS2975 led(&spi_led, p8, p9, NC, HCMS2975::LED16x1); // SPI bus, CS pin, RS pin, RST pin, LEDType = Ok
wim 1:feaf55287b27 27 //HCMS2975 led(&spi_led, p8, p20, NC, HCMS2975::LED8x1); // SPI bus, CS pin, RS pin, RST pin, LEDType = Ok
wim 1:feaf55287b27 28 //HCMS2975 led(&spi_led, p8, p20, NC, HCMS2975::LED8x2); // SPI bus, CS pin, RS pin, RST pin, LEDType = Ok
wim 1:feaf55287b27 29 //HCMS2975 led(&spi_led, p8, p20, NC, HCMS2975::LED16x1); // SPI bus, CS pin, RS pin, RST pin, LEDType = Ok
wim 1:feaf55287b27 30 HCMS2975 led(&spi_led, p8, p20, NC, HCMS2975::LED16x2); // SPI bus, CS pin, RS pin, RST pin, LEDType = Ok
wim 0:6bfe606278c7 31
wim 0:6bfe606278c7 32 // Variables for Heartbeat and Status monitoring
wim 0:6bfe606278c7 33 Ticker heartbeat;
wim 0:6bfe606278c7 34 bool heartbeatflag=false;
wim 0:6bfe606278c7 35
wim 0:6bfe606278c7 36 // Heartbeat monitor
wim 0:6bfe606278c7 37 void pulse() {
wim 0:6bfe606278c7 38 heartbeatLED = !heartbeatLED;
wim 0:6bfe606278c7 39 }
wim 0:6bfe606278c7 40
wim 0:6bfe606278c7 41 void heartbeat_start() {
wim 0:6bfe606278c7 42 heartbeat.attach(&pulse, 0.5);
wim 0:6bfe606278c7 43 heartbeatflag = true;
wim 0:6bfe606278c7 44 }
wim 0:6bfe606278c7 45
wim 0:6bfe606278c7 46 void heartbeat_stop() {
wim 0:6bfe606278c7 47 heartbeat.detach();
wim 0:6bfe606278c7 48 heartbeatflag = false;
wim 0:6bfe606278c7 49 }
wim 0:6bfe606278c7 50
wim 0:6bfe606278c7 51 int main() {
wim 0:6bfe606278c7 52 int cnt;
wim 0:6bfe606278c7 53
wim 1:feaf55287b27 54 pc.printf("Hello mbed from HCMS2975\n\r");
wim 1:feaf55287b27 55
wim 0:6bfe606278c7 56 heartbeat_start();
wim 0:6bfe606278c7 57
wim 0:6bfe606278c7 58 led.locate(0, 0);
wim 0:6bfe606278c7 59
wim 0:6bfe606278c7 60 //led.printf("*=%6d", 123456);
wim 0:6bfe606278c7 61 // 12345678
wim 0:6bfe606278c7 62 led.printf("Hi mbed ");
wim 0:6bfe606278c7 63 wait(2);
wim 0:6bfe606278c7 64
wim 0:6bfe606278c7 65 led.setUDC(0, (char *) udc_0);
wim 0:6bfe606278c7 66 led.setUDC(1, (char *) udc_1);
wim 0:6bfe606278c7 67 led.setUDC(2, (char *) udc_2);
wim 0:6bfe606278c7 68 led.setUDC(3, (char *) udc_3);
wim 0:6bfe606278c7 69 led.setUDC(4, (char *) udc_Bat_Hi);
wim 0:6bfe606278c7 70 led.setUDC(5, (char *) udc_Bat_Ha);
wim 0:6bfe606278c7 71 led.setUDC(6, (char *) udc_Bat_Lo);
wim 0:6bfe606278c7 72 // led.setUDC(7, (char *) udc_smiley);
wim 0:6bfe606278c7 73 led.setUDC(7, (char *) udc_AC);
wim 0:6bfe606278c7 74
wim 0:6bfe606278c7 75 led.putc(0);
wim 0:6bfe606278c7 76 led.putc(1);
wim 0:6bfe606278c7 77 led.putc(2);
wim 0:6bfe606278c7 78 led.putc(3);
wim 0:6bfe606278c7 79 led.putc(4);
wim 0:6bfe606278c7 80 led.putc(5);
wim 0:6bfe606278c7 81 led.putc(6);
wim 0:6bfe606278c7 82 led.putc(7);
wim 0:6bfe606278c7 83 wait(2);
wim 1:feaf55287b27 84
wim 1:feaf55287b27 85 led.setBrightness(HCMS2975_BRIGHT_3_3);
wim 0:6bfe606278c7 86
wim 0:6bfe606278c7 87 cnt=0x20;
wim 0:6bfe606278c7 88 while(1) {
wim 0:6bfe606278c7 89 wait(0.25);
wim 0:6bfe606278c7 90
wim 0:6bfe606278c7 91 led.putc(cnt);
wim 1:feaf55287b27 92 pc.putc('#');
wim 0:6bfe606278c7 93 cnt++;
wim 0:6bfe606278c7 94 if (cnt == 0x80) cnt=0x20;
wim 0:6bfe606278c7 95 }
wim 0:6bfe606278c7 96
wim 0:6bfe606278c7 97 }