LPC1768 programm for the led matrix.

Dependencies:   BufferedSerial DS3231 mbed-rtos mbed

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?

UserRevisionLine numberNew 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 }*/