Zahada v C
Pavel Hudeček
edizon na seznam.cz
Čtvrtek Prosinec 11 10:26:04 CET 2014
To asi moc nepomůže. dispMezera slouží pro oddělování tisíců a neumožňuje
posun o víc než 3. Prodlužuje totiž zobrazování znaku v rámci toho, že je
široký 5, ale font je z celých bajtů:
void dispChr(unsigned char c) { // -----------------------------------------
-----------
. unsigned int n;
. unsigned char a, b;
. switch (c) {
. case 9: if (dispX<(240-48)) dispX+=48; return;
. case 13: if (dispY<(320-8)) dispY+=8; else dispY=0; dispX=0; return;
. default: if (c<32) return;
. }
. if (dispMezera>3) dispMezera=3;
. n=(c-32)*7+4;
. dispBlok(dispX, dispY, 4+dispMezera, 8);
. ili_wrcmd(0x2c);
. for (b=0; b<7; b++) {
. for (a=0; a<5+dispMezera; a++) {
. if (font5x7[n+b] & (1<<a)) ili_wrI16(); else ili_wrP16();
. }
. }
. for (a=0; a<5+dispMezera; a++) ili_wrP16();
. dispX+=a;
. if (dispX>234) {
. dispX=0; dispY+=8;
. if (dispY>320) {dispX=0; dispY=0;}
. }
. dispMezera=1;
}
PH
Od: Pavel Troller patrol na sinus.cz(mailto:patrol na sinus.cz)
"toto mne take napadlo. Mel jsem podezreni na "zdrhnuti" Y pozice.
Mozna by bylo dobre zavolat pred vypisem DispXY(16,0); .
> Tazko povedat, chyba moze byt vo zvysku, ktory nevidime, napr. nemoze
> dispChr() za urcitych okolnosti (napr. nastavene dispMezera) "pisat"
> niekde "mimo zorne pole"? Nepomoze ak sa namiesto nastavenia dispMezera
> zavola dispChr(' ')?"
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20141211/1903a2db/attachment.html>
Další informace o konferenci Hw-list