Wim Huiskamp
/
mbed_HCMS2975
Test for HCMS2975 Alphanumeric LED display
Testcode for HCMS2975 alphanumeric LED displays.
main.cpp@1:feaf55287b27, 2015-01-05 (annotated)
- 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?
User | Revision | Line number | New 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 | } |