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.