add new dot correction method
Fork of TLC5940 by
TLC5940.h@0:ead2ebe1dc77, 2011-12-11 (annotated)
- Committer:
- suupen
- Date:
- Sun Dec 11 00:24:02 2011 +0000
- Revision:
- 0:ead2ebe1dc77
- Child:
- 1:be9daf113060
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
suupen | 0:ead2ebe1dc77 | 1 | /* mbed TLC5940 Library |
suupen | 0:ead2ebe1dc77 | 2 | * Copyright (c) 2011 suupen |
suupen | 0:ead2ebe1dc77 | 3 | * |
suupen | 0:ead2ebe1dc77 | 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy |
suupen | 0:ead2ebe1dc77 | 5 | * of this software and associated documentation files (the "Software"), to deal |
suupen | 0:ead2ebe1dc77 | 6 | * in the Software without restriction, including without limitation the rights |
suupen | 0:ead2ebe1dc77 | 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
suupen | 0:ead2ebe1dc77 | 8 | * copies of the Software, and to permit persons to whom the Software is |
suupen | 0:ead2ebe1dc77 | 9 | * furnished to do so, subject to the following conditions: |
suupen | 0:ead2ebe1dc77 | 10 | * |
suupen | 0:ead2ebe1dc77 | 11 | * The above copyright notice and this permission notice shall be included in |
suupen | 0:ead2ebe1dc77 | 12 | * all copies or substantial portions of the Software. |
suupen | 0:ead2ebe1dc77 | 13 | * |
suupen | 0:ead2ebe1dc77 | 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
suupen | 0:ead2ebe1dc77 | 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
suupen | 0:ead2ebe1dc77 | 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
suupen | 0:ead2ebe1dc77 | 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
suupen | 0:ead2ebe1dc77 | 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
suupen | 0:ead2ebe1dc77 | 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
suupen | 0:ead2ebe1dc77 | 20 | * THE SOFTWARE. |
suupen | 0:ead2ebe1dc77 | 21 | */ |
suupen | 0:ead2ebe1dc77 | 22 | |
suupen | 0:ead2ebe1dc77 | 23 | |
suupen | 0:ead2ebe1dc77 | 24 | //================================ |
suupen | 0:ead2ebe1dc77 | 25 | // TLC5940.h |
suupen | 0:ead2ebe1dc77 | 26 | // V1.0 : 2011/xx/xx |
suupen | 0:ead2ebe1dc77 | 27 | // |
suupen | 0:ead2ebe1dc77 | 28 | //================================ |
suupen | 0:ead2ebe1dc77 | 29 | #ifndef _TLC5940_H |
suupen | 0:ead2ebe1dc77 | 30 | #define _TLC5940_H |
suupen | 0:ead2ebe1dc77 | 31 | |
suupen | 0:ead2ebe1dc77 | 32 | /** TLC5940 class |
suupen | 0:ead2ebe1dc77 | 33 | * |
suupen | 0:ead2ebe1dc77 | 34 | * Example: |
suupen | 0:ead2ebe1dc77 | 35 | * @code |
suupen | 0:ead2ebe1dc77 | 36 | * comming soon |
suupen | 0:ead2ebe1dc77 | 37 | * @endcode |
suupen | 0:ead2ebe1dc77 | 38 | */ |
suupen | 0:ead2ebe1dc77 | 39 | |
suupen | 0:ead2ebe1dc77 | 40 | |
suupen | 0:ead2ebe1dc77 | 41 | |
suupen | 0:ead2ebe1dc77 | 42 | #include "types.h" |
suupen | 0:ead2ebe1dc77 | 43 | |
suupen | 0:ead2ebe1dc77 | 44 | class TLC5940 { |
suupen | 0:ead2ebe1dc77 | 45 | public: |
suupen | 0:ead2ebe1dc77 | 46 | |
suupen | 0:ead2ebe1dc77 | 47 | /** Create a eight dot matrix led array object connected to the specified DigitalOut pin |
suupen | 0:ead2ebe1dc77 | 48 | * @param mosi,misc,sck = SPI(p5,p6,p7) or SPI(p11,p12,p13) |
suupen | 0:ead2ebe1dc77 | 49 | * @param digitalOut xlat |
suupen | 0:ead2ebe1dc77 | 50 | * @param digitalOut blank |
suupen | 0:ead2ebe1dc77 | 51 | * @param digitalOut vprg |
suupen | 0:ead2ebe1dc77 | 52 | * @param uint8_t cascade cascade number = 1 - 21 |
suupen | 0:ead2ebe1dc77 | 53 | */ |
suupen | 0:ead2ebe1dc77 | 54 | |
suupen | 0:ead2ebe1dc77 | 55 | TLC5940(PinName mosi, PinName miso, PinName sck, PinName xlat, PinName blank, PinName vprg, uint8_t cascade = 1); |
suupen | 0:ead2ebe1dc77 | 56 | |
suupen | 0:ead2ebe1dc77 | 57 | |
suupen | 0:ead2ebe1dc77 | 58 | /** Data set to the seven segment LED display |
suupen | 0:ead2ebe1dc77 | 59 | * @param uint16_t* data : grayData table &data[cascade number][16] data[][] = 11 - 0bit |
suupen | 0:ead2ebe1dc77 | 60 | */ |
suupen | 0:ead2ebe1dc77 | 61 | void grayDataSetAndDisplay(uint16_t *data); |
suupen | 0:ead2ebe1dc77 | 62 | |
suupen | 0:ead2ebe1dc77 | 63 | private: |
suupen | 0:ead2ebe1dc77 | 64 | |
suupen | 0:ead2ebe1dc77 | 65 | SPI _spi; |
suupen | 0:ead2ebe1dc77 | 66 | DigitalOut _xlat; |
suupen | 0:ead2ebe1dc77 | 67 | DigitalOut _blank; |
suupen | 0:ead2ebe1dc77 | 68 | DigitalOut _vprg; |
suupen | 0:ead2ebe1dc77 | 69 | |
suupen | 0:ead2ebe1dc77 | 70 | #define Z_clockFrequency (30000000) // Data shift clock frequency and Grayscale clock frequency = 30[MHz] |
suupen | 0:ead2ebe1dc77 | 71 | #define Z_dotCorrection (63) // 5 - 0 bit = (11 1111)b = 63d |
suupen | 0:ead2ebe1dc77 | 72 | uint8_t D_cascade; // cascade number 1 - 21 |
suupen | 0:ead2ebe1dc77 | 73 | #define Z_cascadeMax (21) //cascade number max (21) |
suupen | 0:ead2ebe1dc77 | 74 | |
suupen | 0:ead2ebe1dc77 | 75 | void tlc5940DotCorrection(void); |
suupen | 0:ead2ebe1dc77 | 76 | void tlc5940SpiInitalize(void); |
suupen | 0:ead2ebe1dc77 | 77 | void tlc5940GrayDataClear(void); |
suupen | 0:ead2ebe1dc77 | 78 | |
suupen | 0:ead2ebe1dc77 | 79 | |
suupen | 0:ead2ebe1dc77 | 80 | }; |
suupen | 0:ead2ebe1dc77 | 81 | |
suupen | 0:ead2ebe1dc77 | 82 | #endif // _TLC5940_H |