Hi,
hab hier immer diesen Fehler wenn ich eine Argument mittels zeiger
übergebe.
"warning: passing arg 1 of `write_i2c' makes pointer from integer
without a cast" Übersetzt kann ich mit dem Satz nichts anfangern, was
bedeutet er? Und wie Löse ich das Problem.
Hier das Programm:
void start_i2c(void);
void stop_i2c(void);
void init_i2c(void);
void delay_i2c(int);
void write_i2c(int*,int);
void data_i2c(int*);
void clock_i2c(void);
int main(void)
{
write_i2c(79,01); <---- Dort fehler
}
void start_i2c(void)
{
cbi (PORTD,0);//sda
delay_i2c(50);
cbi (PORTD,1); //scl
}
void stop_i2c(void)
{
sbi (PORTD,1);
delay_i2c(50);
sbi (PORTD,0);
}
void init_i2c(void)
{
sbi (PORTD,0);
sbi (PORTD,1);
delay_i2c(50);
}
void delay_i2c(int t)
{
while(t>0)
{t--;};
}
void write_i2c(int *adress_i2c,int byte_i2c) <---- hier zeiger
{
start_i2c();
data_i2c(*adress_i2c); <---- hier zeiger
}
void data_i2c(int *byte_i2c) <---- hier zeiger
{
int count;
int fil=128;
count=8;
while(count>0)
{
if ((*byte_i2c & fil)>=1) <---- hier zeiger
{
sbi(PORTD,0);
count=count-1;
fil=fil/2;
}
else
{
cbi(PORTD,0);
count=count-1;
fil=fil/2;
}
}
}
void clock_i2c()
{
sbi(PORTD,1);
delay_i2c(50);
cbi(PORTD,1);
}
int main(void)
{
write_i2c(79,01); <---- Dort fehler
}
deine 79 sollte ein pointer sein ;-)
also ich würde eventuell gänzlich ohne pointer arbeiten ;-) dann hast
du auch nicht das prob. "pointer ins nirvana" :-P
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.