C fuggveny hatarozatlan szamu agumentummal
WLC02E,
wlc02e at automation.siemens.com
Mon Sep 12 08:56:20 CEST 2005
Sziasztok,
LCD-n vagy adott pozicioba, vagy a kurzor aktualis poziciojaba irnam ki
a megadott sztringet. Ha nincs kituntetett pozicio -marad a kurzor
aktualis helye-, akkor a fuggveny meghivasakor szeretnem elhagyni a
koordinata parametereket. Ezzel kapcsolatban lenne 3 kerdesem:
1, Miert mukodik a lenti kodreszlet csak akkor, ha y-t ketszer olvasom
ki? (egyebkent y=0)
2, Hogy lehetne megoldani, hogy elhagyott parameter eseten ne 0-t kapjak
vissza, hanem pl. -1-et, mivel (0, 0) lenne az egyik pont az LCD-n,
ahova szinten pozicionalni szeretnek.
3, Lehetne-e cserelni az argumentumok sorrendjet, azaz eloszor az
opcionalis koordinatak, majd a kiirando adat? A va_start(...)-ban a
masodik argument az utolso fix parameter kell(ene) hogy legyen, hogy
nezne ki ebben az esetben a va_start?
Bonusz kerdes :) :
4, Lokalis valtozo mindig regiszterbe kerul, nem? Van ertelme a
"register" hasznalatanak a valtozok deklaraciojanal?
/ATmega128, IAR C/
Koszonom a segitseget!!
Udv:
Gyenge Zoltan
void LcdPrintData(const char* data, ...)
{
register unsigned char i, position, x=0, y=0, counter;
va_list ap;
va_start(ap, data);
if (!data) return; // Check to make sure we have a
good pointer
x = va_arg(ap,unsigned char);
y = va_arg(ap,unsigned char);
y = va_arg(ap,unsigned char);
if ((x>0)&&(x<21)&&(y>0)&&(y<4)) LcdGotoXY(x,y);
position=LcdControlRead(); // Read the actual cursor position
counter=0;
...
}
More information about the Elektro
mailing list