LPC1768 programm for the led matrix.
Dependencies: BufferedSerial DS3231 mbed-rtos mbed
main.cpp@0:41f9c251097c, 2016-07-15 (annotated)
- Committer:
- JOEV
- Date:
- Fri Jul 15 07:13:49 2016 +0000
- Revision:
- 0:41f9c251097c
- Child:
- 1:3a39b1439456
Code works now with two 74HC595 as the matrix-anode and the matrix-cathode.; Animations added.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JOEV | 0:41f9c251097c | 1 | #include <mbed.h> |
JOEV | 0:41f9c251097c | 2 | #include <string> |
JOEV | 0:41f9c251097c | 3 | #include <ctype.h> |
JOEV | 0:41f9c251097c | 4 | |
JOEV | 0:41f9c251097c | 5 | |
JOEV | 0:41f9c251097c | 6 | //------------------------------------------------------------------------------------------------------ |
JOEV | 0:41f9c251097c | 7 | // Analog I/O, Digital I/O, etc. |
JOEV | 0:41f9c251097c | 8 | //------------------------------------------------------------------------------------------------------ |
JOEV | 0:41f9c251097c | 9 | DigitalOut ds1(p5), ds2(p10), oe1(p6), stcp1(p7), shcp1(p8), mr1(p9), led(LED1); |
JOEV | 0:41f9c251097c | 10 | |
JOEV | 0:41f9c251097c | 11 | /* |
JOEV | 0:41f9c251097c | 12 | DS normal Serial Data Output Schreibt vor ob das LED 0 oder 1 ist. |
JOEV | 0:41f9c251097c | 13 | OE invertiert Output-Enable Aktiviert oder deaktiviert die LEDs. |
JOEV | 0:41f9c251097c | 14 | SHCP normal Shift register clk Setzt Position mit kurzen Impulsen fest. |
JOEV | 0:41f9c251097c | 15 | STCP normal Storage reg. clk Setzt Reihe mit kurzen Impulsen fest. |
JOEV | 0:41f9c251097c | 16 | MR invertiert Master reset resetet den Storage. Muss mit STCP angezeigt werden. |
JOEV | 0:41f9c251097c | 17 | */ |
JOEV | 0:41f9c251097c | 18 | |
JOEV | 0:41f9c251097c | 19 | // ,,,,, |
JOEV | 0:41f9c251097c | 20 | // |xox| |
JOEV | 0:41f9c251097c | 21 | // |oxo| |
JOEV | 0:41f9c251097c | 22 | // |xox| |
JOEV | 0:41f9c251097c | 23 | // ''''' |
JOEV | 0:41f9c251097c | 24 | |
JOEV | 0:41f9c251097c | 25 | |
JOEV | 0:41f9c251097c | 26 | //------------------------------------------------------------------------------------------------------ |
JOEV | 0:41f9c251097c | 27 | // Voids & Ticker, Ints, etc. |
JOEV | 0:41f9c251097c | 28 | //------------------------------------------------------------------------------------------------------ |
JOEV | 0:41f9c251097c | 29 | int a, b, x, y, z=0, t, temp; |
JOEV | 0:41f9c251097c | 30 | |
JOEV | 0:41f9c251097c | 31 | int const data[][8] = { {0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01}, |
JOEV | 0:41f9c251097c | 32 | {0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03}, |
JOEV | 0:41f9c251097c | 33 | {0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07}, |
JOEV | 0:41f9c251097c | 34 | {0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f}, |
JOEV | 0:41f9c251097c | 35 | {0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f}, |
JOEV | 0:41f9c251097c | 36 | {0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f}, |
JOEV | 0:41f9c251097c | 37 | {0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f}, |
JOEV | 0:41f9c251097c | 38 | {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}, |
JOEV | 0:41f9c251097c | 39 | {0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe}, |
JOEV | 0:41f9c251097c | 40 | {0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc}, |
JOEV | 0:41f9c251097c | 41 | {0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8}, |
JOEV | 0:41f9c251097c | 42 | {0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0}, |
JOEV | 0:41f9c251097c | 43 | {0xe0,0xe0,0xe0,0xe0,0xe0,0xe0,0xe0,0xe0}, |
JOEV | 0:41f9c251097c | 44 | {0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0}, |
JOEV | 0:41f9c251097c | 45 | {0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80}, |
JOEV | 0:41f9c251097c | 46 | {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}; |
JOEV | 0:41f9c251097c | 47 | |
JOEV | 0:41f9c251097c | 48 | int const size_y = sizeof(data) / sizeof(data[0]); |
JOEV | 0:41f9c251097c | 49 | int const size_x = sizeof(data[0]) / sizeof(data[0][0]); |
JOEV | 0:41f9c251097c | 50 | |
JOEV | 0:41f9c251097c | 51 | bool row_temp[8][8]= {{},{},{},{},{},{},{},{}}; |
JOEV | 0:41f9c251097c | 52 | void save_srg(), reset_srg(); //, set_srg(bool status_[]); |
JOEV | 0:41f9c251097c | 53 | //------------------------------------------------------------------------------------------------------ |
JOEV | 0:41f9c251097c | 54 | |
JOEV | 0:41f9c251097c | 55 | |
JOEV | 0:41f9c251097c | 56 | //------------------------------------------------------------------------------------------------------ |
JOEV | 0:41f9c251097c | 57 | // Main |
JOEV | 0:41f9c251097c | 58 | //------------------------------------------------------------------------------------------------------ |
JOEV | 0:41f9c251097c | 59 | int main() |
JOEV | 0:41f9c251097c | 60 | { |
JOEV | 0:41f9c251097c | 61 | oe1=1; |
JOEV | 0:41f9c251097c | 62 | reset_srg(); |
JOEV | 0:41f9c251097c | 63 | oe1=0; |
JOEV | 0:41f9c251097c | 64 | while(1) |
JOEV | 0:41f9c251097c | 65 | { |
JOEV | 0:41f9c251097c | 66 | for(y = 0; y < size_y; y++) // Frames |
JOEV | 0:41f9c251097c | 67 | { |
JOEV | 0:41f9c251097c | 68 | for(t = 0; t < 80; t++) // Zeit |
JOEV | 0:41f9c251097c | 69 | { |
JOEV | 0:41f9c251097c | 70 | for(a = 0; a < size_x; a++) // row_temp befüllen |
JOEV | 0:41f9c251097c | 71 | { |
JOEV | 0:41f9c251097c | 72 | temp=data[y][a]; |
JOEV | 0:41f9c251097c | 73 | for(x = 0; x < size_x; x++) |
JOEV | 0:41f9c251097c | 74 | { |
JOEV | 0:41f9c251097c | 75 | row_temp[a][x]=(temp >> x) & 1; |
JOEV | 0:41f9c251097c | 76 | } |
JOEV | 0:41f9c251097c | 77 | } // Ende for-a |
JOEV | 0:41f9c251097c | 78 | for(z = 0; z < size_x; z++) |
JOEV | 0:41f9c251097c | 79 | { |
JOEV | 0:41f9c251097c | 80 | for(a=0;a<8;a++) |
JOEV | 0:41f9c251097c | 81 | { |
JOEV | 0:41f9c251097c | 82 | ds2 = 1; |
JOEV | 0:41f9c251097c | 83 | ds1 = row_temp[z][a]; |
JOEV | 0:41f9c251097c | 84 | save_srg(); |
JOEV | 0:41f9c251097c | 85 | } // Ende for-a |
JOEV | 0:41f9c251097c | 86 | stcp1 = 1; |
JOEV | 0:41f9c251097c | 87 | stcp1 = 0; |
JOEV | 0:41f9c251097c | 88 | wait_ms(1); |
JOEV | 0:41f9c251097c | 89 | |
JOEV | 0:41f9c251097c | 90 | |
JOEV | 0:41f9c251097c | 91 | } // Ende for-z |
JOEV | 0:41f9c251097c | 92 | } // Ende for-t |
JOEV | 0:41f9c251097c | 93 | } // Ende for-y |
JOEV | 0:41f9c251097c | 94 | } // Ende while |
JOEV | 0:41f9c251097c | 95 | } // Ende main |
JOEV | 0:41f9c251097c | 96 | |
JOEV | 0:41f9c251097c | 97 | |
JOEV | 0:41f9c251097c | 98 | //------------------------------------------------------------------------------------------------------ |
JOEV | 0:41f9c251097c | 99 | // Voids & Floats |
JOEV | 0:41f9c251097c | 100 | //------------------------------------------------------------------------------------------------------ |
JOEV | 0:41f9c251097c | 101 | |
JOEV | 0:41f9c251097c | 102 | void save_srg() |
JOEV | 0:41f9c251097c | 103 | { |
JOEV | 0:41f9c251097c | 104 | shcp1 = 1; |
JOEV | 0:41f9c251097c | 105 | shcp1 = 0; |
JOEV | 0:41f9c251097c | 106 | } |
JOEV | 0:41f9c251097c | 107 | |
JOEV | 0:41f9c251097c | 108 | |
JOEV | 0:41f9c251097c | 109 | void reset_srg() |
JOEV | 0:41f9c251097c | 110 | { |
JOEV | 0:41f9c251097c | 111 | mr1 = 0; |
JOEV | 0:41f9c251097c | 112 | save_srg(); |
JOEV | 0:41f9c251097c | 113 | stcp1 = 1; |
JOEV | 0:41f9c251097c | 114 | stcp1 = 0; |
JOEV | 0:41f9c251097c | 115 | |
JOEV | 0:41f9c251097c | 116 | mr1 = 1; |
JOEV | 0:41f9c251097c | 117 | } |
JOEV | 0:41f9c251097c | 118 | |
JOEV | 0:41f9c251097c | 119 | /* |
JOEV | 0:41f9c251097c | 120 | void set_srg(bool status_[]) |
JOEV | 0:41f9c251097c | 121 | { |
JOEV | 0:41f9c251097c | 122 | for(x=0;x<3;x++) |
JOEV | 0:41f9c251097c | 123 | { |
JOEV | 0:41f9c251097c | 124 | ds1 = status_bin[x]; |
JOEV | 0:41f9c251097c | 125 | save_srg(); |
JOEV | 0:41f9c251097c | 126 | wait(0.5); |
JOEV | 0:41f9c251097c | 127 | stcp1 = 1; |
JOEV | 0:41f9c251097c | 128 | stcp1 = 0; |
JOEV | 0:41f9c251097c | 129 | } |
JOEV | 0:41f9c251097c | 130 | |
JOEV | 0:41f9c251097c | 131 | }*/ |
JOEV | 0:41f9c251097c | 132 | |
JOEV | 0:41f9c251097c | 133 | |
JOEV | 0:41f9c251097c | 134 | /*for(i=0;i<100;i++) |
JOEV | 0:41f9c251097c | 135 | { |
JOEV | 0:41f9c251097c | 136 | for(y=0;y<8;y++) |
JOEV | 0:41f9c251097c | 137 | { |
JOEV | 0:41f9c251097c | 138 | if(i>=brightness[y]) |
JOEV | 0:41f9c251097c | 139 | status_bin[y] = false; |
JOEV | 0:41f9c251097c | 140 | else |
JOEV | 0:41f9c251097c | 141 | status_bin[y] = status_[y]; |
JOEV | 0:41f9c251097c | 142 | } |
JOEV | 0:41f9c251097c | 143 | set_srg(status_bin); |
JOEV | 0:41f9c251097c | 144 | }*/ |