Hallo, ich habe die I2C Library von Peter Fleury getestet. Mit dem mitgelieferten Makefile compliiert es wunderbar. Mit meinem eigenen kommen Fehler. WO ist da der Unterschied?
Bei deinem wird der TWI-Code gar nicht übersetzt, und damit natürlich auch nicht dazu gelinkt.
ok danke habe ich auch gerade entdeckt. Man kann den TWI Code ja aber auch per include einbinden, dass sollte ja keinen Unterschied machen oder?
Es mag sein, dass das in diesem konkreten (einfachen) Fall keinen Unterschied macht, aber trotzdem solltest du dir so etwas erst gar nicht angewöhnen. Füge die Datei der Sourcen-Liste im Makefile hinzu, und gut ist's.
ich ahbe nochmal eine frage ich habe jetzt die twimaster.c im makefile eingebunden in dieser datei ist #include <i2cmaster.h> eingebunden. Wieso bekomme ich dann errors, wenn ich nicht nochmal in der Hauptdatei die i2cmaster.h einbinde?
Weil die Dateien unabhängig voneinander übersetzt werden. Beim Übersetzen der Hauptdatei ist dem Compiler kein bisschen davon bekannt, was in anderen C-Dateien steht. Dies dem Compiler mitzuteilen ist ja einer der Hauptzwecke der Header-Dateien.
ok und wenn ich jetzt noch eine andere c Datei mit Header Datei habe wie binde ich die dann ein? ins makefile die C Datei und im Hauptfile per include die headerdatei? Und in den beiden Dateien wo binde ich dann #include <stdint.h> ein? In der Headerdatei? Oder im C oder in beiden?
Du bindest die jeweiligen Header immer dort ein, wo du sie brauchst. Wenn z.B. in der Datei xyz.c die TWI-Funktionen benutzt werden, dann bindest du dort die twimaster.h ein, und wenn nicht, dann nicht.
also ich verstehe den Sinn der Headerdatei k´jetzt so ich binde die Header Datei in die c Datei ein. in der Headerdatei binde ich die in der Headerdatei und in der c Datei benötigten Headerdateien ein. In der headerdatei deklariere ich u.a. die Funtionsprototypen für die C Datei.
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.