Wim Huiskamp
/
mbed_HCMS2975
Test for HCMS2975 Alphanumeric LED display
Testcode for HCMS2975 alphanumeric LED displays.
main.cpp@0:6bfe606278c7, 2014-10-15 (annotated)
- Committer:
- wim
- Date:
- Wed Oct 15 17:00:10 2014 +0000
- Revision:
- 0:6bfe606278c7
- Child:
- 1:feaf55287b27
Test for HCMS2975 Alphanumeric LED Display.
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 | 0:6bfe606278c7 | 26 | HCMS2975 led(&spi_led, p8, p9, NC, HCMS2975::LED16x1); // SPI bus, CS pin, RS pin, RST pin, LEDType = Ok |
wim | 0:6bfe606278c7 | 27 | |
wim | 0:6bfe606278c7 | 28 | // Variables for Heartbeat and Status monitoring |
wim | 0:6bfe606278c7 | 29 | Ticker heartbeat; |
wim | 0:6bfe606278c7 | 30 | bool heartbeatflag=false; |
wim | 0:6bfe606278c7 | 31 | |
wim | 0:6bfe606278c7 | 32 | // Heartbeat monitor |
wim | 0:6bfe606278c7 | 33 | void pulse() { |
wim | 0:6bfe606278c7 | 34 | heartbeatLED = !heartbeatLED; |
wim | 0:6bfe606278c7 | 35 | } |
wim | 0:6bfe606278c7 | 36 | |
wim | 0:6bfe606278c7 | 37 | void heartbeat_start() { |
wim | 0:6bfe606278c7 | 38 | heartbeat.attach(&pulse, 0.5); |
wim | 0:6bfe606278c7 | 39 | heartbeatflag = true; |
wim | 0:6bfe606278c7 | 40 | } |
wim | 0:6bfe606278c7 | 41 | |
wim | 0:6bfe606278c7 | 42 | void heartbeat_stop() { |
wim | 0:6bfe606278c7 | 43 | heartbeat.detach(); |
wim | 0:6bfe606278c7 | 44 | heartbeatflag = false; |
wim | 0:6bfe606278c7 | 45 | } |
wim | 0:6bfe606278c7 | 46 | |
wim | 0:6bfe606278c7 | 47 | int main() { |
wim | 0:6bfe606278c7 | 48 | int cnt; |
wim | 0:6bfe606278c7 | 49 | |
wim | 0:6bfe606278c7 | 50 | heartbeat_start(); |
wim | 0:6bfe606278c7 | 51 | |
wim | 0:6bfe606278c7 | 52 | led.locate(0, 0); |
wim | 0:6bfe606278c7 | 53 | |
wim | 0:6bfe606278c7 | 54 | //led.printf("*=%6d", 123456); |
wim | 0:6bfe606278c7 | 55 | // 12345678 |
wim | 0:6bfe606278c7 | 56 | led.printf("Hi mbed "); |
wim | 0:6bfe606278c7 | 57 | wait(2); |
wim | 0:6bfe606278c7 | 58 | |
wim | 0:6bfe606278c7 | 59 | led.setUDC(0, (char *) udc_0); |
wim | 0:6bfe606278c7 | 60 | led.setUDC(1, (char *) udc_1); |
wim | 0:6bfe606278c7 | 61 | led.setUDC(2, (char *) udc_2); |
wim | 0:6bfe606278c7 | 62 | led.setUDC(3, (char *) udc_3); |
wim | 0:6bfe606278c7 | 63 | led.setUDC(4, (char *) udc_Bat_Hi); |
wim | 0:6bfe606278c7 | 64 | led.setUDC(5, (char *) udc_Bat_Ha); |
wim | 0:6bfe606278c7 | 65 | led.setUDC(6, (char *) udc_Bat_Lo); |
wim | 0:6bfe606278c7 | 66 | // led.setUDC(7, (char *) udc_smiley); |
wim | 0:6bfe606278c7 | 67 | led.setUDC(7, (char *) udc_AC); |
wim | 0:6bfe606278c7 | 68 | |
wim | 0:6bfe606278c7 | 69 | led.putc(0); |
wim | 0:6bfe606278c7 | 70 | led.putc(1); |
wim | 0:6bfe606278c7 | 71 | led.putc(2); |
wim | 0:6bfe606278c7 | 72 | led.putc(3); |
wim | 0:6bfe606278c7 | 73 | led.putc(4); |
wim | 0:6bfe606278c7 | 74 | led.putc(5); |
wim | 0:6bfe606278c7 | 75 | led.putc(6); |
wim | 0:6bfe606278c7 | 76 | led.putc(7); |
wim | 0:6bfe606278c7 | 77 | wait(2); |
wim | 0:6bfe606278c7 | 78 | |
wim | 0:6bfe606278c7 | 79 | cnt=0x20; |
wim | 0:6bfe606278c7 | 80 | while(1) { |
wim | 0:6bfe606278c7 | 81 | wait(0.25); |
wim | 0:6bfe606278c7 | 82 | |
wim | 0:6bfe606278c7 | 83 | led.putc(cnt); |
wim | 0:6bfe606278c7 | 84 | cnt++; |
wim | 0:6bfe606278c7 | 85 | if (cnt == 0x80) cnt=0x20; |
wim | 0:6bfe606278c7 | 86 | } |
wim | 0:6bfe606278c7 | 87 | |
wim | 0:6bfe606278c7 | 88 | } |