jag håller på och försöker göra ett litet grafiskt gränssnit till en display jag kopplat till en dsPIC30F6012:
Jag använder mig av C30 kompilatorn.
Det jag försöker göra är att göra en funktion som skriver ut en menyruta.
ex: vLCDShowMenu(3,"ett","två","tre"); skall ge skriva ut de tre raderna
ett
två
tre
första argumentet säger hur många rader som skall skrivas ut, och nästföljande argument är innehållet i raderna som skall skrivas.
Min funktion som jag skrivit ser ut enligt följande:
Kod: Markera allt
#include <stdarg.h>
void vLCDShowMenu(char *bNof,...)
{
char *s;
char a;
int iXtemp;
int iYtemp;
va_list ap;
va_start(ap,bNof);
iXtemp = bXpos;
iYtemp = bYpos;
while(*bNof)
{
vLCDSetPos(iXtemp,iYtemp);
s= va_arg(ap,char*);
while(*s != '\0')
{
a = *s;
s++;
}
// vLCDPutStr(s);
(*bNof)--;
iYtemp+=8;
}
va_end(ap);
}
problemet som uppstår är:
placerar jag funktionen i min main fil, så verkar den fungera utmärkt.
Men om jag placerar funktionen i min grafik.c fil så hittar den inte mina strängar som jag har som inargument. Istället skriver den ut strängar som är initierade någon annan stans.
Någon som vet vart felet ligger?
// Daniel