Forum: Mikrocontroller und Digitale Elektronik Windmesser mit dem Atmega8


von Jens G. (jensgrumme)


Lesenswert?

Hallo bin nach langer Pause wieder zurück und beschäftiege mich wieder 
mit dem Thema Programmieren.

Habe ein kleines Projekt angefangen einen Windmesser mit LCD Anzeige.

Habe da nur ein Problem mit dem Code.

Ich kopiere den code einfach mal hier rein.

Folgende Fehlermeldung bekomme ich,
1
Error  1  ..\..\includes\BitUtilities.h: No such file or directory

Vieleicht kann mir jemand mal ein tip geben was es genau für ein fehler 
ist und wie ich ihn gelöst bekomme.

Mit Freundlichen Grüße aus Göttingen
1
#define XTAL 8e6
2
#define F_CPU XTAL
3
#include <avr/io.h>
4
#include <avr/interrupt.h>
5
#include <stdlib.h>
6
#include <string.h>
7
#include <util/delay.h>
8
#include "..\..\includes\BitUtilities.h"
9
#include "..\..\includes\lcd_display_on_Port_D.h"
10
#define calibrator 3420.0
11
12
13
int main(void)
14
{ char str [5];
15
  unsigned int gatetime = 2500;  // in ms
16
  float value;
17
  lcd_init();
18
  lcd_write("Windmesser");
19
  _delay_ms(300);
20
  lcd_send(COMMAND, LCD_CLEAR);
21
  lcd_set_cursor (1, 0); lcd_write ("Wind");
22
  lcd_set_cursor (1, 8); lcd_write ("0.0");
23
  lcd_set_cursor (1, 12); lcd_write ("km/h");
24
  seit();
25
    while(1)
26
    { value = 0;
27
    //start counter
28
    cbi(DDRD,5);  //PD5 as input
29
    TCNT1 = 0;    // reset conter
30
    //Ext. Clock @ T1, rising edge
31
    TCCR1B = (1<<CS02)|(1<<CS01)|(1<<CS00);
32
    // wait one gate period
33
    _delay_ms(gatetime);
34
    value = TCNT1;
35
    // Stopp counter
36
    TCCR1B = 0;
37
    sbi(DDRD,5);  //PD5 as Output for LCD
38
    value = calibrator value / gatetime;
39
    dtostrf(value, 5, 1, str); lcd_set_cursor ( 1, 6); lcd_write (str);
40
    }
41
    return 0;
42
}

von Nuthan (Gast)


Lesenswert?

> Error  1  ..\..\includes\BitUtilities.h: No such file or directory

Überprüfe, ob die Datei BitUtilities.h im angegebenen Pfad existiert.

von Mehr Code (Gast)


Lesenswert?

Jens Grumme schrieb:
> Error  1  ..\..\includes\BitUtilities.h: No such file or directory

Deine was auch immer IDE kann mit deinem was auch immer OS die Datei 
BitUtilities.h in dem Pfad wohl nicht finden.

von Karl H. (kbuchegg)


Lesenswert?

Was genau gibt es an 'no such file or directory' nicht zu verstehen?

von Jens (Gast)


Lesenswert?

Ich habe den Code aus einem Buch abgetippt.

Wie bekomme ich den fehler raus.

Ich muss dazusagen bin noch am anfang der programmierung praktisch 
Anfänger.

von Oliver R. (orb)


Lesenswert?

Jens schrieb:
> Wie bekomme ich den fehler raus.

In dem Buch nachsehen, wo diese Unterroutinen herkommen sollen.

von Karl H. (kbuchegg)


Lesenswert?

Jens schrieb:
> Ich habe den Code aus einem Buch abgetippt.
>
> Wie bekomme ich den fehler raus.

na ja.
Was heisst denn 'no such file or directoy'


Das heisst auf Deutsch: Die Datei (oder das Verzeichnis), die du 
angegeben hast, existiert nicht.

Was nicht existiert, kann auch nicht included werden.

Also geh mal im Explorer auf das Verzeichnis, auf dem deine C-Datei 
liegt.
1
Das ist der Ausgangspunkt für den relativen Pfad.
2
..                         d.h. eine Verzeichnisebene höher
3
..\..                      noch eine Verzeichnisebene höher
4
..\..\include              dort müsste es dann ein Subverzeichnis 'include' geben
5
..\..\include\Bitutils.h   und in diesem Subverzeichnis müsste die Datei Bitutils.h liegen
irgendwo bei deinen Pfade, Pfadangaben bzw. in der Verzeichnisstruktur 
ist der Wurm drinnen.

Ich würde ja sowieso sagen, pfeif auf die Bitutils.h. Höchst 
wahrscheinlich sind da sowieso nur die Makros CBI und SBI drinnen. Lern 
statt dessen, wie man das auch ohne Makros schreibt.
Alelrdings hast du ja auch noch einen 2.te Include von genau dem 
gleichen Verzeichnis, so dass du da jetzt erst mal nachsehen solltest, 
was da in der Verzeichnisstruktur nicht stimmt, bzw. welche Vorarbeiten 
aus dem Buch du 'vergessen' hast, wie zb das hinkopieren von auf einer 
Diskette oder CD mitgelieferten Header Files in bestimmte vorgegebene 
Verzeichnisstrukturen. Vielleicht ist dein Buch aber auch für das alte 
AVR Studio geschrieben worden. Im neueren Atmel Studio ist der 
Verzeichnisaufbau in einem Projekt ein wenig anders geworden. In dem 
Fall dann halt einfach mal nachsehen, wo die Header Datei Bitutils.h 
wirklich ist, und die relative Pfadangabe entsprechend korrigieren.

> Ich muss dazusagen bin noch am anfang der programmierung praktisch
> Anfänger.

Das hat nicht viel damit zu tun.
Da geht es einfach nur darum, ob man Dinge wie ..\..\include\Bitutils.h 
lesen und korrekt in die Verzeichnishierarchie auf der Festplatte 
einordnen kann. Sprich: Pfadangaben in Textform lesen. Etwas, das sogar 
die BWL-er vor 30 Jahren, als Mausschubsen noch nicht in Mode war, noch 
gekonnt haben.

von Klaus R. (klaus2)


Lesenswert?

Zwei Fragen Jens, völlig wertfrei:

1) Bist du des Englischen mächtig?

2) Was hast du getan um selbst auf die Lsg zu kommen und was glaubst du, 
könnte die Fehlermedlung denn wohl bedeuten? (Gut, man hat es dir schon 
verraten).

Der Fehler war nun wirklich nicht sehr kompliziert.

Klaus.

von Jens G. (jensgrumme)


Lesenswert?

Klaus R. schrieb:
> Zwei Fragen Jens, völlig wertfrei:
>
> 1) Bist du des Englischen mächtig?

Englisch ist nicht so meine Stärke.


>
> 2) Was hast du getan um selbst auf die Lsg zu kommen und was glaubst du,
> könnte die Fehlermedlung denn wohl bedeuten? (Gut, man hat es dir schon
> verraten).
>
> Der Fehler war nun wirklich nicht sehr kompliziert.
>
> Klaus.

Werde mir morgen das Buch noch mal vor nehmen und stöbern.
Das Buch hat den Titel AVR-Mikrokontroller in C programmieren von 
Franzis.

von wendelsberg (Gast)


Lesenswert?

Jens Grumme schrieb:
> Englisch ist nicht so meine Stärke.

Dann such Dir ein anderes Hobby, es gibt die meisten Dateblaetter nicht 
in Deutsch und ohne die wirst Du nicht ernsthaft arbeiten koennen.

wendelsberg

von Jens G. (jensgrumme)


Lesenswert?

Danke schön.

Werde mir anderes Forum suchen.

von El84 (Gast)


Lesenswert?

wendelsberg schrieb:
> Jens Grumme schrieb:
>> Englisch ist nicht so meine Stärke.
>
> Dann such Dir ein anderes Hobby, es gibt die meisten Dateblaetter nicht
> in Deutsch und ohne die wirst Du nicht ernsthaft arbeiten koennen.
>
> wendelsberg

Na hoffentlich Arroganz versichert...

... Schade, dass es in diesem guten Forum ständig Leute gibt, die nichts 
beitragen, aber dumme Kommentare ablassen müssen.
Es gibt tatsächlich Menschen auf diesem Planeten, die Elektronik als 
Hobby betreiben und nicht E-Technik studiert haben. Und die haben 
tatsächlich Spaß an der Sache, ohne jemals den Anspruch zu haben die 
Probleme professionell zu lösen.
Worin besteht der Zusammenhang zwischen Datenblättern und in C zu 
programmieren.

von Wolfgang A. (Gast)


Lesenswert?

Jens Grumme schrieb:
> Werde mir anderes Forum suchen.

Meinst du, da sitzen mehr, die nichts anderes zu tun haben, als 
Datenblätter aus dem Englischen zu übersetzen.

von wendelsberg (Gast)


Lesenswert?

El84 schrieb:
> Worin besteht der Zusammenhang zwischen Datenblättern und in C zu
> programmieren.

z.B. darin, aus dem Datenblatt herauslesen zu koennen, welche Register 
wie gesetzt werden muessen, damit z.B. der Timer das macht, was er soll.
Oder auch darin, aus dem Datenblatt herauslesen zu koennen, welche 
Register wie gesetzt werden muessen, damit z.B. der Pin von Eingang auf 
Ausgang umgeschaltet wird.

Meiner Ansicht nach hat es wenig mit Arroganz zu tun, einem Anfaenger zu 
sagen, dass er fuer dieses Hobby elementare Grundlagen - hier: eine der 
einfachsten Fehlermeldungen deuten koennen - nicht beherrscht.

wendelsberg

von Michael L. (michaelx)


Lesenswert?

Jens Grumme schrieb:
> Klaus R. schrieb:
>> Zwei Fragen Jens, völlig wertfrei:
>>
>> 1) Bist du des Englischen mächtig?
>
> Englisch ist nicht so meine Stärke.

Da solltest du was dran ändern, sonst schränkst du deine Auswahl an 
Informationsquellen ganz erheblich ein. Immer nur auf Sekundärquellen zu 
hoffen, ist im Bereich Mikrocontroller und Programmierung (allgemein) 
eine schlechte Entscheidung.

Ja, es ist am Anfang etwas schwer. Aber man sollte sich hüten, ständig 
und alles übersetzen zu wollen. Viele Fachbegriffe sind ohnehin bekannt, 
so dass man interessante Passagen finden sollte, und diese dann genauer 
ansehen. Ggf. hilft der google Übersetzer (copy -> paste). Sowas hatte 
ich damals noch nicht als ich angefangen habe, da war noch suchen im 
Wörterbuch angesagt.

Zum Schluss noch der wichtigste Tipp meiner letzten Englisch-Lehrerin:

"Englisch denken, und nicht dauernd im Kopf übersetzen."

Ich bin auch kein Sprachgenie, aber da hat es bei mir "Klick" gemacht.

;-)

von Jens G. (jensgrumme)


Lesenswert?

Ich finde es nur Schade das egal aus welchen Büchern oder ausem Netz die 
Programme bzw Code stammen. Zu 90% funktioniert keins auf anhieb.

So kann man natürlich auch nichts lernen.

Was das Englische an geht ein bischen kann ich es ja was halt aus der 
Schulzeit mal hängen geblieben ist, es gibt ja zu Not übersetzter.

von Blackbird (Gast)


Lesenswert?

>> Ich finde es nur Schade das egal aus welchen Büchern oder ausem Netz
>> die Programme bzw Code stammen. Zu 90% funktioniert keins auf anhieb.


Die Programme funktionieren schon - die "Umgebung" paßt meistens nicht 
dazu.



Blackbird

von Thomas B. (Gast)


Lesenswert?

Die Datei die da gesucht wird befindent sich auf der CD die dem Buch 
beigelegt ist.
Wird sogar mal erwähnt im Buch (weiß jetzt nicht mehr ob beim Beispiel 
oder am Anfang vom Buch).

von npn (Gast)


Lesenswert?

Jens Grumme schrieb:
> Ich finde es nur Schade das egal aus welchen Büchern oder ausem Netz die
> Programme bzw Code stammen. Zu 90% funktioniert keins auf anhieb.
>
> So kann man natürlich auch nichts lernen.

Da bin ich aber nicht deiner Meinung. Gerade dann, wenn ein Programm auf 
Anhieb funktioniert, nachdem du es einfach nur kopiert hast, dann lernst 
du am wenigsten. Ich würde es gerade als Herausforderung sehen, ein 
Programm zum Laufen zu kriegen, indem ich versuche, die Fehler zu finden 
und diese beseitigen.
Und was das englische betrifft, da hilft nur Übung. Datenblätter lesen 
usw. Und wenn man einen Begriff oder eine Redewendung nicht versteht, 
macht man sich schlau und beim nächsten Mal geht das schon besser. Und 
so kommt nach und nach auch die Fähigkeit, das Fach-Englisch besser zu 
verstehen.
Und wenn du von einigen hier im Forum harte Worte hörst, dann stoß dich 
nicht am Umgangston. Manchmal steckt auch ein Körnchen Wahrheit drin ;-)

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.