tim003 tim003
/
LukaIElmir26
Novo
Fork of LukaIElmir by
DotMatrix.h
- Committer:
- tim003
- Date:
- 2014-05-26
- Revision:
- 5:654e3398c1ef
- Parent:
- 4:ba24ce878e87
- Child:
- 6:dd675b967b60
File content as of revision 5:654e3398c1ef:
#include "mbed.h" #include "MatrixSPI.h" #include <string> #include <vector> #include "Znak.h" #ifndef DOTMATRIX_H #define DOTMATRIX_H enum ModPrikazivanja{scroll, char_by_char, live_input}; class DotMatrix{ public: DotMatrix(PinName data_input = dp2, PinName clock = dp6, PinName loadcs = dp24) :spi(data_input, clock, loadcs), turnedON(false), mod(scroll), char_trenutni(0), char_offset(0), repeat(true), brzina_ms(1000) { for(int i = 0; i < 8; i++) buffer[i] = 0; } void refresh(); void setIntensity(float jacina); void setSpeed_ms(int ms); void turnON(); void turnOFF(); void PromijeniRecenicu(string recenica){ this->recenica = recenica; } void NadodajNaRecenicu(char c){ recenica += c; } void NadodajNaRecenicu(string str){ recenica += str; } void PromijeniMod(ModPrikazivanja mod){ if(this->mod != mod){ this->mod = mod; attach(); } } ModPrikazivanja dajMod() const{ return mod; } void SetRepeat(bool r){ repeat = r; } bool GetRepeat() const{ return repeat; } void inicijaliziraj(){ znakovi[0] = Znak(0x7e, 0x11, 0x11, 0x7e); znakovi[1] = Znak(0x7e, 0x49, 0x49, 0x36); znakovi[2] = Znak(0x3e, 0x41, 0x41, 0x22); znakovi[3] = Znak(0x7f, 0x41, 0x41, 0x3e); } void setChar(char c, int offset) { int index = c - 'A'; if(offset < 0) { for(int i = 0; i < znakovi[index].vel + offset; i++) { buffer[i] = znakovi[index].niz[i - offset]; } } else { for(int i = offset; i < 8 && i < znakovi[index].vel + offset; i++) { buffer[i] = znakovi[index].niz[i - offset]; } } } void displaySingleChar(char c){ setChar(c, 2); refresh(); } int buffer[8]; Znak znakovi[4]; private: void attach(); void prikaziScroll(){} void prikaziCBC(){ if(char_trenutni == recenica.size()) refresh(); else { displaySingleChar(recenica[char_trenutni]); char_trenutni++; if(char_trenutni == recenica.size() && repeat) char_trenutni = 0; } } MatrixSPI spi; bool turnedON; string recenica; ModPrikazivanja mod; int char_trenutni, char_offset; Ticker ticker; //bool isAttached potrebno ako se ticker ne može 2. detachirati... bool repeat; int brzina_ms; }; #endif //DotMatrix_h