LPC1768 programm for the led matrix.
Dependencies: BufferedSerial DS3231 mbed-rtos mbed
setMatrix.cpp
- Committer:
- JOEV
- Date:
- 2016-10-12
- Revision:
- 2:d5472e4a55bf
- Child:
- 3:bd1352d4dbb8
File content as of revision 2:d5472e4a55bf:
#include "initalize.h" #include "alphabet.h" #include "mbed.h" #include <string> /* __ __ _ _ _ \ \ / /_ _ _ _(_)__ _| |__| |___ ___ \ V / _` | '_| / _` | '_ \ / -_|_-< \_/\__,_|_| |_\__,_|_.__/_\___/__/ */ int m_speed, m_loop; int c_frame, // frame-counter speed, // Variable for setting up, how fast the matrix would scroll ble, // Variable as "getting text from Bluetooth"-signal frames; // Variable for the scrolling of the text string text_bluetooth (""); // will be empty, is going to be used for the bluetooth module //------------------------------------------------------------------------------------------------------ DigitalOut ds1(p5), oe1(p6), stcp1(p7), shcp1(p8), mr1(p9), led(LED1); AnalogIn ain(p20); Ticker tick; Serial pc(USBTX, USBRX); // tx, rx /* DS normal Serial Data Output Schreibt vor ob das LED 0 oder 1 ist. OE invertiert Output-Enable Aktiviert oder deaktiviert die LEDs. SHCP normal Shift register clk Setzt Position mit kurzen Impulsen fest. STCP normal Storage reg. clk Setzt Reihe mit kurzen Impulsen fest. MR invertiert Master reset resetet den Storage. Muss mit STCP angezeigt werden. */ //------------------------------------------------------------------------------------------------------ /* ___ _ _ | __| _ _ _ __| |_(_)___ _ _ ___ | _| || | ' \/ _| _| / _ \ ' \(_-< |_| \_,_|_||_\__|\__|_\___/_||_/__/ */ void Matrix(int m_length, int m_height, int *matrix_text,const string text_generic) { init(); wait(0.5); reset_srg(); wait(0.05); setText(text_generic,matrix_text); wait(0.05); setMatrix(m_height, m_length, matrix_text); } void init() { mr1 = 1; oe1 = 0; ds1 = 0; stcp1 = 0; shcp1 = 0; frames = 0; c_frame = 0; m_loop = 1; } void shift_srg() { wait_ms(0.05); // Perioden-Dauer 2ms, später verkürzen shcp1 = 1; wait_ms(0.05); shcp1 = 0; } void reset_srg() { mr1 = 0; wait_ms(0.05); // Reset-Puls 1ms, später verkürzen mr1 = 1; } void setSpeed() { // not possible with simple if-loops if(ain > 0.125f) m_speed = 10; if(ain > 0.25f) m_speed = 25; if(ain > 0.375f) m_speed = 50; if(ain > 0.5f) m_speed = 100; if(ain > 0.625f) m_speed = 250; if(ain > 0.75f) m_speed = 500; if(ain > 0.875f) m_speed = 1000; if(ain > 0.97f) m_speed = 2000; } void setMatrix(int m_height,int m_length, int *matrix_text) { //bool row_temp[m_height]; // temporary array for matrix output while(1) { for(int frequency = 0; frequency < 50; frequency++) { for(int position = 0; position < m_length; position++) { for(int column = 0; column < m_length; column++) { if(column == position) { ds1 = 1; } else { ds1 = 0; } shift_srg(); } for(int shift_int = 0; shift_int < m_height; shift_int++) { ds1 = (matrix_text[position] >> shift_int) & 1; shift_srg(); } stcp1 = 1; wait_ms(0.5); stcp1 = 0; } } frames++; if(frames == c_frame) frames = 0; } } void initArray(int const *letter, int size, int *matrix_text) { c_frame = c_frame + 1; // A small space, about 1 led column, is being added. for(int position = 0; position < size; position++) { matrix_text[c_frame] = letter[position]; c_frame++; } matrix_text[c_frame] = 0x00; } void setText(const string& text_dummy, int *matrix_text) // Used to identifiy which letter is in the set String-Position. // If it contains a specific letter, it will call another Function called "initArray" to fill up the array which is then used to show the letters on the Matrix { for(int LetterPos = 0; LetterPos < text_dummy.size(); LetterPos++) { //Letters ------------------------ if (text_dummy.at(LetterPos) == 'A') { initArray(A,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'a') { initArray(a,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'B') { initArray(B,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'b') { initArray(b,5,matrix_text); } else if(text_dummy.at(LetterPos) == 'C') { initArray(C,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'c') { initArray(c,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'D') { initArray(D,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'd') { initArray(d,5,matrix_text); } else if(text_dummy.at(LetterPos) == 'E') { initArray(E,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'e') { initArray(e,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'F') { initArray(F,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'f') { initArray(f,3,matrix_text); } else if(text_dummy.at(LetterPos) == 'G') { initArray(G,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'g') { initArray(g,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'H') { initArray(H,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'h') { initArray(h,5,matrix_text); } else if(text_dummy.at(LetterPos) == 'I') { initArray(I,3,matrix_text); } else if(text_dummy.at(LetterPos) == 'i') { initArray(i,3,matrix_text); } else if(text_dummy.at(LetterPos) == 'J') { initArray(J,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'j') { initArray(j,3,matrix_text); } else if(text_dummy.at(LetterPos) == 'K') { initArray(K,5,matrix_text); } else if(text_dummy.at(LetterPos) == 'k') { initArray(k,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'L') { initArray(L,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'l') { initArray(l,3,matrix_text); } else if(text_dummy.at(LetterPos) == 'M') { initArray(M,5,matrix_text); } else if(text_dummy.at(LetterPos) == 'm') { initArray(m,5,matrix_text); } else if(text_dummy.at(LetterPos) == 'N') { initArray(N,5,matrix_text); } else if(text_dummy.at(LetterPos) == 'n') { initArray(n,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'O') { initArray(O,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'o') { initArray(o,5,matrix_text); } else if(text_dummy.at(LetterPos) == 'P') { initArray(P,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'p') { initArray(p,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'Q') { initArray(Q,5,matrix_text); } else if(text_dummy.at(LetterPos) == 'q') { initArray(q,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'R') { initArray(R,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'r') { initArray(r,3,matrix_text); } else if(text_dummy.at(LetterPos) == 'S') { initArray(S,4,matrix_text); } else if(text_dummy.at(LetterPos) == 's') { initArray(s,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'T') { initArray(T,5,matrix_text); } else if(text_dummy.at(LetterPos) == 't') { initArray(t,3,matrix_text); } else if(text_dummy.at(LetterPos) == 'U') { initArray(U,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'u') { initArray(u,5,matrix_text); } else if(text_dummy.at(LetterPos) == 'V') { initArray(V,5,matrix_text); } else if(text_dummy.at(LetterPos) == 'v') { initArray(v,5,matrix_text); } else if(text_dummy.at(LetterPos) == 'W') { initArray(W,5,matrix_text); } else if(text_dummy.at(LetterPos) == 'w') { initArray(w,5,matrix_text); } else if(text_dummy.at(LetterPos) == 'X') { initArray(X,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'x') { initArray(x,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'Y') { initArray(Y,5,matrix_text); } else if(text_dummy.at(LetterPos) == 'y') { initArray(y,5,matrix_text); } else if(text_dummy.at(LetterPos) == 'Z') { initArray(Z,4,matrix_text); } else if(text_dummy.at(LetterPos) == 'z') { initArray(z,4,matrix_text); } // Numbers ----------------------- else if(text_dummy.at(LetterPos) == '0') { initArray(zero,4,matrix_text); } else if(text_dummy.at(LetterPos) == '1') { initArray(one,3,matrix_text); } else if(text_dummy.at(LetterPos) == '2') { initArray(two,4,matrix_text); } else if(text_dummy.at(LetterPos) == '3') { initArray(three,4,matrix_text); } else if(text_dummy.at(LetterPos) == '4') { initArray(four,4,matrix_text); } else if(text_dummy.at(LetterPos) == '5') { initArray(five,4,matrix_text); } else if(text_dummy.at(LetterPos) == '6') { initArray(six,4,matrix_text); } else if(text_dummy.at(LetterPos) == '7') { initArray(seven,4,matrix_text); } else if(text_dummy.at(LetterPos) == '8') { initArray(eight,4,matrix_text); } else if(text_dummy.at(LetterPos) == '9') { initArray(nine,4,matrix_text); } // Symbols ----------------------- else if(text_dummy.at(LetterPos) == '!') { initArray(exclam,1,matrix_text); } else if(text_dummy.at(LetterPos) == '?') { initArray(quest,3,matrix_text); } else if(text_dummy.at(LetterPos) == 34) { initArray(quote,3,matrix_text); } else if(text_dummy.at(LetterPos) == '#') { initArray(hash,5,matrix_text); } else if(text_dummy.at(LetterPos) == '$') { initArray(dollar,5,matrix_text); } else if(text_dummy.at(LetterPos) == '%') { initArray(prcent,7,matrix_text); } else if(text_dummy.at(LetterPos) == '&') { initArray(_and,5,matrix_text); } else if(text_dummy.at(LetterPos) == '(') { initArray(round_o,2,matrix_text); } else if(text_dummy.at(LetterPos) == ')') { initArray(round_c,2,matrix_text); } else if(text_dummy.at(LetterPos) == '*') { initArray(star,5,matrix_text); } else if(text_dummy.at(LetterPos) == '+') { initArray(plus,5,matrix_text); } else if(text_dummy.at(LetterPos) == '-') { initArray(minus,3,matrix_text); } else if(text_dummy.at(LetterPos) == '=') { initArray(_equal,3,matrix_text); } else if(text_dummy.at(LetterPos) == ',') { initArray(comma,2,matrix_text); } else if(text_dummy.at(LetterPos) == '.') { initArray(point,1,matrix_text); } else if(text_dummy.at(LetterPos) == '/') { initArray(slash,5,matrix_text); } else if(text_dummy.at(LetterPos) == 58) { initArray(d_point,1,matrix_text); } else if(text_dummy.at(LetterPos) == 59) { initArray(poicom,2,matrix_text); } else if(text_dummy.at(LetterPos) == 95) { initArray(undlin,4,matrix_text); } else if(text_dummy.at(LetterPos) == 92) { initArray(b_slash,5,matrix_text); } else if(text_dummy.at(LetterPos) == 64) { initArray(at,5,matrix_text); } else if(text_dummy.at(LetterPos) == 62) { initArray(more,4,matrix_text); } else if(text_dummy.at(LetterPos) == 60) { initArray(less,1,matrix_text); } else if(text_dummy.at(LetterPos) == '[') { initArray(brack_o,2,matrix_text); } else if(text_dummy.at(LetterPos) == ']') { initArray(brack_c,2,matrix_text); } else if(text_dummy.at(LetterPos) == 94) { initArray(roof,3,matrix_text); } else if(text_dummy.at(LetterPos) == '{') { initArray(brace_o,3,matrix_text); } else if(text_dummy.at(LetterPos) == '}') { initArray(brace_c,3,matrix_text); } else if(text_dummy.at(LetterPos) == '~') { initArray(wave,4,matrix_text); } else if(text_dummy.at(LetterPos) == '|') { initArray(stick,1,matrix_text); } else if(text_dummy.at(LetterPos) == '`') { initArray(frapo,2,matrix_text); } else if(text_dummy.at(LetterPos) == ' ') { initArray(space,3,matrix_text); } } c_frame += 3; }