Simple library for controll a matrix of 7 segment displays. It also support the Hexadecimal and the Decimal visualisation.
Multi7Seg.h@1:4ee2f3c3cf46, 2011-04-23 (annotated)
- Committer:
- trombettamichele
- Date:
- Sat Apr 23 10:30:51 2011 +0000
- Revision:
- 1:4ee2f3c3cf46
- Parent:
- 0:9db0be7962dd
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
trombettamichele | 0:9db0be7962dd | 1 | #include "mbed.h" |
trombettamichele | 0:9db0be7962dd | 2 | // Simple library that can controll a matrix of 7 segment led displays |
trombettamichele | 0:9db0be7962dd | 3 | // Created by Michele Trombetta |
trombettamichele | 0:9db0be7962dd | 4 | // Copyright 2010 5OFT. All rights reserved. |
trombettamichele | 0:9db0be7962dd | 5 | |
trombettamichele | 1:4ee2f3c3cf46 | 6 | #ifndef led_ANODE |
trombettamichele | 1:4ee2f3c3cf46 | 7 | #define led_ANODE 0 |
trombettamichele | 1:4ee2f3c3cf46 | 8 | #define led_CATHODE 1 |
trombettamichele | 0:9db0be7962dd | 9 | #endif |
trombettamichele | 0:9db0be7962dd | 10 | |
trombettamichele | 1:4ee2f3c3cf46 | 11 | #ifndef VAR_num_7seg |
trombettamichele | 1:4ee2f3c3cf46 | 12 | #define VAR_num_7seg |
trombettamichele | 1:4ee2f3c3cf46 | 13 | //Chars: 0123456789AbCdEF |
trombettamichele | 1:4ee2f3c3cf46 | 14 | const unsigned char num_7seg[24] = {0x3F, 0x6, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x7, 0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x00}; |
trombettamichele | 1:4ee2f3c3cf46 | 15 | #endif |
trombettamichele | 1:4ee2f3c3cf46 | 16 | |
trombettamichele | 1:4ee2f3c3cf46 | 17 | #ifndef LIB_Multi7Seg |
trombettamichele | 1:4ee2f3c3cf46 | 18 | #define LIB_Multi7Seg |
trombettamichele | 1:4ee2f3c3cf46 | 19 | #define format_DEC 1 |
trombettamichele | 1:4ee2f3c3cf46 | 20 | #define format_HEX 0 |
trombettamichele | 0:9db0be7962dd | 21 | class Multi7Seg { |
trombettamichele | 0:9db0be7962dd | 22 | public: |
trombettamichele | 0:9db0be7962dd | 23 | Multi7Seg(PinName a, PinName b, PinName c, PinName d, PinName e, PinName f, PinName g, PinName disp1, PinName disp2, bool led_type); |
trombettamichele | 0:9db0be7962dd | 24 | Multi7Seg(PinName a, PinName b, PinName c, PinName d, PinName e, PinName f, PinName g, PinName disp1, PinName disp2, PinName disp3, bool led_type); |
trombettamichele | 0:9db0be7962dd | 25 | Multi7Seg(PinName a, PinName b, PinName c, PinName d, PinName e, PinName f, PinName g, PinName disp1, PinName disp2, PinName disp3, PinName disp4, bool led_type); |
trombettamichele | 0:9db0be7962dd | 26 | Multi7Seg(PinName a, PinName b, PinName c, PinName d, PinName e, PinName f, PinName g, PinName disp1, PinName disp2, PinName disp3, PinName disp4, PinName disp5, bool led_type); |
trombettamichele | 0:9db0be7962dd | 27 | void write(unsigned int number); // Write the number to the led displays |
trombettamichele | 0:9db0be7962dd | 28 | void setformat(bool format); // Set the format (0-Dec 1-Hex) |
trombettamichele | 0:9db0be7962dd | 29 | void setspeed(float speed); // Set the delay time for digits scanning |
trombettamichele | 0:9db0be7962dd | 30 | void setenabled(unsigned char enabled); // Enable or disable a single led display (by setting the bit of the argument "enabled") |
trombettamichele | 0:9db0be7962dd | 31 | private: |
trombettamichele | 0:9db0be7962dd | 32 | BusOut _disps; |
trombettamichele | 0:9db0be7962dd | 33 | BusOut _led_7seg; |
trombettamichele | 0:9db0be7962dd | 34 | unsigned char _ndisp, _enabled; |
trombettamichele | 0:9db0be7962dd | 35 | bool _format, _led_type; |
trombettamichele | 0:9db0be7962dd | 36 | float _speed; |
trombettamichele | 0:9db0be7962dd | 37 | unsigned int _num1, _num2, _num3, _num4, _num5; |
trombettamichele | 0:9db0be7962dd | 38 | void led_write(unsigned char number); |
trombettamichele | 1:4ee2f3c3cf46 | 39 | }; |
trombettamichele | 1:4ee2f3c3cf46 | 40 | #endif |