Forum: Mikrocontroller und Digitale Elektronik Building Problem


von M. T. (cube7)


Lesenswert?

Hallo allesamt,
ich habe mal ein kleines Programm für die I2C Kommunikation mit einem 
Sensor geschrieben, aber noch ein paar kleine Probleme. Könnte vllt. mal 
jemand kurz draufschauen, ob er offensichtliche Fehler findet?
1
#include <stdint.h>
2
#include <C:\Users\thedja\Documents\i2cmaster.h>    //Anpassen!
3
#include <avr/io.h>
4
5
#define ISL29010 0x8A //Addresse des Sensors
6
7
int main(void)
8
{
9
unsigned char ret;  //Variable fürs Messbyte, vllt. floating Variable besser
10
i2c_init();                         //Initialisiere I2C
11
i2c_start_wait(ISL29010+I2C_WRITE); //Mit Polling auf den Sensor warten
12
i2c_write(0x04);                     //Adresse des Daten-Registers schreiben
13
i2c_rep_start(0x8A+I2C_READ);        //Datenregister des Sensors ansprechen
14
ret = i2c_readAck();                      //Datenregister des Sensors auslesen
15
i2c_stop(); 
16
         
17
if(ret != 0){
18
DDRB  = 0xff;                             //Wenn Daten empfangen werden LED 1 an, LED an Port B und GND
19
PORTB = 0xff;                              //Pull-Up Widerstände
20
}
21
else{                                      //Wenn keine Daten empfangen werden LED 2 an, LED an Port D und GND
22
DDRD  = 0xff;                             
23
PORTD = 0xff;                               //Pull-Up Widerstände                            
24
}
25
for(;;);
26
}

Compilieren tut AvrStudio ohne Probleme, aber beim Build and Run gibbet 
folgendes Problem

../twimaster.c:12:23: error: i2cmaster.h: No such file or directory


Grüße,
M.

von Karl H. (kbuchegg)


Lesenswert?

M. T. schrieb:

> Compilieren tut AvrStudio ohne Probleme,

:-)
Dann gäbs keine Probleme.

> aber beim Build and Run gibbet
> folgendes Problem
>
> ../twimaster.c:12:23: error: i2cmaster.h: No such file or directory

Na dann wirds eben die Datei

#include <C:\Users\thedja\Documents\i2cmaster.h>    //Anpassen!

tatsächlich nicht geben.

von M. T. (cube7)


Lesenswert?

Die gibts aber, ich hab se vor mir -_-.
Versteh ick echt nich....

von Regler (Gast)


Lesenswert?

Vielleicht ein Problem der Zugriffsrechte?

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Applaus für Karl Heinz, der wirklich jedem hilft, egal wie 
offensichtlich der Fehler ist.

Was ist dein Geheimnis, irgendein Tee, Meditation oder sowas?
Wo kommt nur diese Ruhe her?

PS: An den OP, versuchs mal mit Anführungszeichen beim include.

von Regler (Gast)


Lesenswert?

Kopier die Datei dochmal in das entsprechende Verzeichnis.... Bei 
Windows 7 gibt es einige Fallstricke mit den Verzeichnisnamen....

von hp-freund (Gast)


Lesenswert?

Versuch mal:

#include "C:\Users\thedja\Documents\i2cmaster.h"    //Anpassen!

von Regler (Gast)


Lesenswert?

Tim T. schrieb:
> versuchs mal mit Anführungszeichen beim include.

Peinlich, peinlich, (Schäm). Wie konnte ich das übersehen....

von Karl H. (kbuchegg)


Lesenswert?

Tim T. schrieb:

> Was ist dein Geheimnis, irgendein Tee, Meditation oder sowas?
> Wo kommt nur diese Ruhe her?

Ommmmmm

von M. T. (cube7)


Lesenswert?

Nope, auch mit Anführungszeichen läufts nich, den Fehler korrigiert der 
Compiler wohl eh selbst.

von Karl H. (kbuchegg)


Lesenswert?

Tim T. schrieb:

> PS: An den OP, versuchs mal mit Anführungszeichen beim include.

Da er den Pfad komplett und direkt angibt, sollte das keine Rolle 
spielen.

von Karl H. (kbuchegg)


Lesenswert?

M. T. schrieb:
> Nope, auch mit Anführungszeichen läufts nich, den Fehler korrigiert der
> Compiler wohl eh selbst.

Mach doch mal Notepad auf.
Dann Datei öffnen und als Dateinamen gibst du den Pfad genau so ein, wie 
du ihn auch im Include hast.

(Ganz abgesehen davon finde ich gehören solche Dinge sowieso nicht in 
das User Verzeichnis, da macht man sich auf C oder sonst einer Platte 
ein Verzeichnis, unter dem man seine Codestückelchen aufbewahrt, 
eventuell sogar in Subverzeichnissen nach Themenkreisen geordnet. Aber 
diese User Verzeichnisse sind mir ein Dorn im Auge. Genauso wie die 
Leute, die alles am Dekstop ablegen und nach 2 Monaten nicht mehr 
wissen, wo sie was hingeschoben haben. Hauptsache der Desktop ist 
zugemüllt.)

von M. T. (cube7)


Lesenswert?

Okay, Fehler gefunden, i2cmaster.c musste angepasst werden.

von hp-freund (Gast)


Lesenswert?

Wie jetzt???

von M. T. (cube7)


Lesenswert?

Ich meine twimaster.h benötigt selber i2cmaster.c, daher musste der Pfad 
von i2cmaster.c in twimaster.h angepasst werden.

von Karl H. (kbuchegg)


Lesenswert?

M. T. schrieb:
> Ich meine twimaster.h benötigt selber i2cmaster.c, daher musste der Pfad
> von i2cmaster.c in twimaster.h angepasst werden.

Das klingt danach .... als ob der Code an sich grottig schlecht 
aufgebaut ist.

C-Files werden nicht inkludiert.

von hp-freund (Gast)


Lesenswert?

Ich ziehe es auch vor sämtliche zum Projekt gehörende Dateien in den 
Objektordner zu legen. Erspart auch später Probleme...

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

hp-freund schrieb:
> Ich ziehe es auch vor sämtliche zum Projekt gehörende Dateien in den
> Objektordner zu legen. Erspart auch später Probleme...

Jein, ich benutze z.B. häufig selbstgebastelte Bibliotheken (Uart, 
Timer, Speicher, Aktoren, etc.) die ich in ein eigenes Verzeichnis in 
den Standard-Include-Pfad des Compilers verlinkt habe, da diese immer 
mal wieder überarbeitet werden. Wenn man dann erst in allen 
Projektverzeichnissen die entsprechenden Dateien tauschen muss wirds 
mühsam und irgendwo vergisst man immer was.

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
Noch kein Account? Hier anmelden.