 |

|
|
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 2025 12 18, 22:09. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » Nedaugina iš kintamojo
|
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
|
|
|
Puslapis 2 iš 2 Pereiti prie Atgal 1, 2 |
|
 |
Nedaugina iš kintamojo |
Parašytas: 2015 11 16, 23:04 |
|
|
|
|
| R2D2 rašo: |
kas su ta trijų raidžių kombinacija?  |
ir kokiam kupranugariui tai reikalinga ciklo salygoje? sriftas[offset]+1
o ciklo kune jis reikalingas, bet jus ji kazkodel praleidote. |
|
|
|
|
|
 |
Nedaugina iš kintamojo |
Parašytas: 2015 11 16, 23:29 |
|
|
|
|
| AlgisL rašo: |
ir kokiam kupranugariui tai reikalinga ciklo salygoje? sriftas[offset]+1
o ciklo kune jis reikalingas, bet jus ji kazkodel praleidote. |
| Kodas: |
void GLCD_WriteChar(char charToWrite)
{
int i;
int offset;
charToWrite -= 32;
offset = (int)(charToWrite) * 6;
for(i = 1; i < sriftas[offset]+1; i++) //nustatomas simbolio plotis
GLCD_WriteData(GLCD_ReadByteFromROMMemory((char *)((int)sriftas + (offset) + [b]i[/b])));
} |
o kas tas "i" tada čia?
jūs galite sėkmingai toliau autorių auklėti, kaip optimaliai kodą rašyti. |
|
|
|
|
|
 |
 |
Re: Nedaugina iš kintamojo |
Parašytas: 2015 11 17, 07:10 |
|
|
|
|
| Saulius18 rašo: |
| gintaras_bar rašo: |
| Įtariu, jog nesupranti, kada naudoti signed, o kada unsigned tipo kintamuosius. Pvz. charToWrite pagal mane turėtų būti unsigned char tipo. |
O kodėl sakai, kad tėtų būti unsigned char? Čia juk tik simbolis, kadangi man reikalingas intervalas yra nuo 32 iki 256. |
signed char intervalas nuo -127 iki 127. Taigi, 256 nepatenka į šį intervalą. Beje, 256 nepatenka ir į unsigned char intervalą (0-255) |
|
|
|
|
|
 |
 |
Nedaugina iš kintamojo |
Parašytas: 2015 11 17, 08:39 |
|
|
|
|
| R2D2 rašo: |
| o kas tas "i" tada čia? |
A, jo majo for(i=1;..
Kodas veikiantis, bet nera optimalus.
Beje, autoriau, ar sriftas aprasytas taip?
const char sriftas[] PROGMEM = {
0x04, 0xFF, 0xFF, 0xFF, 0xFF,
};
tada dar optimaliau butu:
| Kodas: |
void GLCD_WriteChar(char charToWrite) {
uint16_t wOffset = (uint16_t)sriftas + 6 * (uint16_t)(charToWrite - 32);
uint8_t bCount = pgm_read_byte(offset);
do { GLCD_WriteData(pgm_read_byte(++wOffset)); } while(--bCount);
}
|
|
|
|
|
|
|
 |
Re: Nedaugina iš kintamojo |
Parašytas: 2015 11 17, 09:45 |
|
|
|
|
| hencia rašo: |
| signed char intervalas nuo -127 iki 127. Taigi, 256 nepatenka į šį intervalą. Beje, 256 nepatenka ir į unsigned char intervalą (0-255) |
dar reikėtų pažiūrėti kompilerio nustatymus, nes labai dažnai būna nustatymas kad char yra unsigned (arba signed)
čia gcc variantas, kad pats kompileris pridėtų žodelį signed
o čia - unsigned
|
|
|
|
|
|
 |
 |
Re: Nedaugina iš kintamojo |
Parašytas: 2015 11 17, 11:25 |
|
|
|
|
| Saulius18 rašo: |
| O kodėl sakai, kad tėtų būti unsigned char? Čia juk tik simbolis, kadangi man reikalingas intervalas yra nuo 32 iki 256. |
Esmę atsakė hencia
| hencia rašo: |
| signed char intervalas nuo -127 iki 127. Taigi, 256 nepatenka į šį intervalą. Beje, 256 nepatenka ir į unsigned char intervalą (0-255) |
Papildė R2D2
| R2D2 rašo: |
dar reikėtų pažiūrėti kompilerio nustatymus, nes labai dažnai būna nustatymas kad char yra unsigned (arba signed)
čia gcc variantas, kad pats kompileris pridėtų žodelį signed
o čia - unsigned
|
Tai pagal nutylėjimą deklaravimą char kompiliatorius priima kaip signed char. Norint, kad programa teisingai traktuotų kintamojo reikšmes >127, privalomai reikia deklaruoti unsigned char.
Dėl kintamojo "sriftas" viskas gerai, nepamačiau, kad naudoji jo adresą. Kai buvusi darbo diena baigiasi 5 val. ryto, jau per sunku būna dėmesį sukoncentruoti  |
|
|
|
|
|
 |
 |
Nedaugina iš kintamojo |
Parašytas: 2015 11 17, 23:57 |
|
|
|
|
Dėkui visiems padėjot, AlgisL būtent, tai ir panaudojau, o kitų dėka sužinojau kame bėda, o bėda kintamojo tipas, ąčiū dar kartą  |
|
|
|
|
|
|
 |
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 |
 |
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
 |
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
 |
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
 |
ATS Trailers
American Truck Simulator Mods,
ATS Trucks,
ATS Maps |
 |
Must have farming mods
Farming simulator modhub,
Best farming simulator mods |
|

|
 |