|
|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2024 11 28, 18:35. Visos datos yra GMT + 2 valandos.
|
|
|
|
Forumas » Mikrovaldikliai » LED matrica 64x32
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
|
|
|
LED matrica 64x32 |
Parašytas: 2015 05 30, 13:12 |
|
|
|
sveiki, isigijau matrica, ir programuojant pagal duota koda iskilo problemu.
Kodas:
Kodas: |
// Routine to print a single character in one of 8 columns
// Inputs:
// x is one of (0,16,24,32,40,48,56),
// y (0 to 16 or 24 depending upon font size),
// n is either (0 to 9) or an ascii value,
// font=0 for big font, 2 for small font,
// inverse is true for an inverted character
void drawChar(uint16_t x, uint16_t y, byte n, byte font, boolean inverse) {
byte charbytes[16], fontrows, xover8 = x>>3;
int index;
if (0 != (x % 8)) return; // x not a multiple of 8
if ((n>9) && (n<32)) return; // invalid character
if (font==2) fontrows=16; else fontrows=8;
if ((n>=0) && (n<=9)) index=(n+16)*fontrows; else index=(n-32)*fontrows; // go to the right code for this character
// addressing start at buffer and add y (rows) * (WIDTH is 64 so WIDTH/8) is 8 plus (x / 8) is 0 to 7
byte *pDst = buffer + (y << 3) + xover8;
for (byte i=0;i<fontrows;i++) { // fill up the charbytes array with the right bits
if (font==0) charbytes[i] = pgm_read_byte(&(font8x8_basic[index+i]));
// if (font==1) charbytes[i] = pgm_read_byte(&(font8x8_extended[index+i]));
if (font==2) charbytes[i] = pgm_read_byte(&(font8x16_basic[index+i]));
// reverse bit order for fonts 0 and 1
if (font != 2) {
charbytes[i] = (charbytes[i] & 0xF0) >> 4 | (charbytes[i] & 0x0F) << 4;
charbytes[i] = (charbytes[i] & 0xCC) >> 2 | (charbytes[i] & 0x33) << 2;
charbytes[i] = (charbytes[i] & 0xAA) >> 1 | (charbytes[i] & 0x55) << 1;
};
if (inverse) charbytes[i] = ~charbytes[i];
};
const byte *pSrc = charbytes; // point at the first set of 8 pixels
for (byte i=0; i<fontrows; i++) {
*pDst = *pSrc; // populate the destination byte
pDst += 8; // go to next row on buffer
pSrc++; // go to next set of 8 pixels in character
}
}; |
visa matrica jei nieko neatvaizduoju sviecia visi ledai, ten kur raides ar skaiciai jie nedega, o as noriu kad sviestu tik tie led kur raides ar skiciai atvaizduojami, o visa kita nedegtu. ir nesuprandu ka sitojme kode pakeisti kad butu kaip noriu, yra funkcija inverse bet ji tik pacia raide pakeicia ir aplink ja, jei raide 8x8 tai sita plota ir keicia, o visa kita ne, as noriu kad visa pasikeistu. jei kam nesunku pagelbekit |
|
_________________ Skype: dmb-220 |
|
|
|
|
|
LED matrica 64x32 |
Parašytas: 2015 05 30, 13:35 |
|
|
|
atkreipk i proceduros parametra inverse |
|
|
|
|
|
|
LED matrica 64x32 |
Parašytas: 2015 05 30, 13:56 |
|
|
|
AlgisL rašo: |
atkreipk i proceduros parametra inverse |
jei tu turi omenyje sita eilute
Kodas: |
if (inverse) charbytes[i] = ~charbytes[i]; |
tai ji nustatinejau ir i true ir i false ir apie tai rasiau
visas kodas : https://drive.google.com/file/d/0B7l6SxJ3dkyCTzlwZkVXeWdvbk0/view?usp=sharing
pavyko pasidaryt kad visa matrica nesvietu, o svietu tik uzrasai, ivertavau visa buffer kintamaji su ~
PORTB |= !((~buffer[index]>>(7-i)) & 0x01) << (data_R1-; // top set of rows
PORTB |= !((~buffer[index+128]>>(7-i)) & 0x01) << (data_R2-; // bottom set of rows
as galvoju kad cia viska as per aplinkui darau, reik rasti kode kur iskart yra padaromas visa sviecianti matrica ir ja isjungti, tik nerandu, ir visa buferi invertuoju kad padoriai rodytu. kazkur kode kur nera raidziu ir pan programa i bufferi sukisa vienetus ir taip sviecia visa matrica, tik nerandu ir nesuprandu kurioje vietoje. man biski kosmosas bytu postumiai greitai pasimetu kur kas turi buti, gal kas kokia technika gera turit kad nepasimest |
|
_________________ Skype: dmb-220 |
|
|
|
|
|
|
|
|
|
Google paieška forume |
|
|
Naujos temos forume |
|
|
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
|
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
|
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
|
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
|
LEGO
Mänguköök,
mudelautod,
nukuvanker |
|
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope |
|
FS25 Mods
FS25 Harvesters,
FS25 Tractors Mods,
FS25 Maps Mods |
|
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
|
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
|
GTA 6 Weapons
GTA 6 Characters,
GTA 6 Map,
GTA 6 Vehicles |
|
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
|
|
|