I2C -Anfängerfrage

OP (Firma: Rentner) #7366489
Lesenswert?

Man verzeihe mir eine sicher dumme Anfängerfrage:

Bei electronicwings.com gibt es ein Source- File für eine RTC-Uhr: https://www.electronicwings.com/avr-atmega/real-time-clock-rtc-ds1307-interfacing-with-atmega16-32

Ich komme nicht drauf, was ich anstelle von "I2C_Master_H_file.h" verwenden muss, denn die Header- Datei ist unbekannt. Für die LCD ist mir lcd-routines.h klar aber brauche ich denn wirklich für I2C einen eigenen Header? Oder stehe ich da auf dem Schlauch? Für sachdienliche Hinweise bedanke ich mich schon mal im Vorhinein!

Gerhard

#7366533
Lesenswert?

Gerhard H. schrieb:

Was ich nicht verstehe, ist, warum diverse header-dateien nicht gleich im Studio7 integriert sind. Hat das einen triftigen Grund?

Weil keiner weiß, welche du brauchst und du würdest dich schön bedanken, wenn alle Header-Dateien dieser Welt, möglicherweise noch diverse mit gleichem Namen, aber unterschiedlichem Inhalt, sich auf deinem Rechner breit machen.

OP (Firma: Rentner) #7366597
Lesenswert?

Das ist mir natürlich schon verständlich, aber ich bin halt der Ansicht, dass zumindest die wirklich wichtigen Header-Dateien wie z.B. lcd-routines, I2C und zum Bleistift oled_ssd1306.h integriert sein sollten, denn die braucht man ja äusserst oft.

Ich weiss schon, dass es bei Arduino einfacher gestaltet ist, aber ich verbeisse mich halt lieber in "richtiges" C. Ist einfach interessanter (für mich zumindest), obwohl ich nur langsam weiter komme, aber ich versuche, mich da richtig durchzubeissen und schon Monaco Franze sagte : " A bissl wos geht immer!" Dass da von mir dumme Fragen auftauchen und ich hier im Forum lästig bin, tut mir leid, aber in dem Forum wird einem prima geholfen und es geht was weiter, wenigstens "a bissl wos", altersbedingt :-)

Gast #7366654
Lesenswert?

Gerhard H. schrieb:

Das ist mir natürlich schon verständlich, aber ich bin halt der Ansicht, dass zumindest die wirklich wichtigen Header-Dateien wie z.B. lcd-routines, I2C und zum Bleistift oled_ssd1306.h integriert sein sollten, denn die braucht man ja äusserst oft.

Sage das dem Autor des Projektes.

#7366666
Lesenswert?

Gerhard H. schrieb:

Das ist mir natürlich schon verständlich, aber ich bin halt der Ansicht, dass zumindest die wirklich wichtigen Header-Dateien wie z.B. lcd-routines, I2C und zum Bleistift oled_ssd1306.h integriert sein sollten, denn die braucht man ja äusserst oft.

Es gibt keine "DIE wirklich wichtigen header-Dateien". Es gibt nur hunderte, die irgend jemand irgendwie mal irgendwo geschrieben hat.

Die IDE kommt mit der toolchain, bestehend aus Compiler, Linker, und der C-Library, und allem, was es braucht, um auf einem Zielprozessor C-Programme zu schreiben. Schreiben musst du die dann aber selber.

Mehr bekommst du bei Arduino. Das kommt mit den "wirklich wichtigen header-Dateien", nur halt mit anderen, als das Projekt, was du da irgendwo aus dem Netz gefischt hast, braucht.

Oliver

#7366675
Lesenswert?

Gerhard H. schrieb:

Man verzeihe mir eine sicher dumme Anfängerfrage:

Bei electronicwings.com gibt es ein Source- File für eine RTC-Uhr: https://www.electronicwings.com/avr-atmega/real-time-clock-rtc-ds1307-interfacing-with-atmega16-32

Ich komme nicht drauf, was ich anstelle von "I2C_Master_H_file.h" verwenden muss, denn die Header- Datei ist unbekannt. Für die LCD ist mir lcd-routines.h klar aber brauche ich denn wirklich für I2C einen eigenen Header? Oder stehe ich da auf dem Schlauch? Für sachdienliche Hinweise bedanke ich mich schon mal im Vorhinein!

Gerhard

Es liegt an der Herangehensweise: Als Anfänger irgendwelchen Code kopieren und nutzen wollen. Wäre mir damals nie in den Sinn gekommen.

Selber Code schreiben und verstehen ist das Motto.

#7366692
Lesenswert?

Gerhard H. schrieb:

Das ist mir natürlich schon verständlich, aber ich bin halt der Ansicht, dass zumindest die wirklich wichtigen Header-Dateien wie z.B. lcd-routines, I2C und zum Bleistift oled_ssd1306.h integriert sein sollten, denn die braucht man ja äusserst oft.

Und die Header allein bringen dir was genau? Wo ist die Implementierung dazu? Hast du da Quellcode oder eine lib? Wenn nicht, dann bringen dir die Header auch nichts.

#7366695
Lesenswert?

Gerhard H. schrieb:

Das ist mir natürlich schon verständlich, aber ich bin halt der Ansicht, dass zumindest die wirklich wichtigen Header-Dateien wie z.B. lcd-routines, I2C und zum Bleistift oled_ssd1306.h integriert sein sollten, denn die braucht man ja äusserst oft.

Die wirklich wichtigen (z.B. libc) sind integriert. Für LCD und I2C hat sich bisher außerhalb von Arduino kein Standard herauskristallisiert. Und selbst in der Arduino-Umgebung gibt es keine integrierte LCD-Bibliothek.

Diese Libs sind halt Segen und Fluch zugleich. Einerseits sind sie hilfreich um schnelle Erfolge zu bekommen. Andererseits sind manche davon von recht zweifelhafter Qualität.

Dazu kommt: Ich z.B. brauche oled_ssd1306.h nicht "äusserst oft".

LG, Sebastian

#7366709
Lesenswert?

Cyblord -. schrieb:

Und die Header allein bringen dir was genau? Wo ist die Implementierung dazu? Hast du da Quellcode oder eine lib? Wenn nicht, dann bringen dir die Header auch nichts.

Ich hoffe, dass er durch meinen Link auf die passende Implementierung gestossen wurde. Ein bisschen Denken kann auch für Rentner (mich!) nicht schaden. Wobei, ob's für ihn passt, weiss ich nicht. Das muss er schon selber herausfinden.

#7367174
Lesenswert?

Gerhard H. schrieb:

Das ist mir natürlich schon verständlich, aber ich bin halt der Ansicht, dass zumindest die wirklich wichtigen Header-Dateien wie z.B. lcd-routines, I2C und zum Bleistift oled_ssd1306.h integriert sein sollten, denn die braucht man ja äusserst oft.

Wer soll das denn machen? Dazu muß man erstmal bombensichere Bibliotheken verfügbar haben. Die, die irgendwelche Bastler mal ins Web gestellt haben, sind es nämlich nicht. Die gehen bestenfalls nur für wenige AVR/ARM Derivate und auch nur unter bestimmten Bedingungen. Auch haben sie oft Seitenfeffekte, z.B. harte Wartezeiten, die andere Funktionen ausbremsen.

Die Header sind auch nur ein ganz kleiner Teil des Entwicklungsaufwandes. Sie machen nur die Funktionen bekannt, die in den eigentlichen vorkompilierten oder quelloffenen Libs stehen. Auch in Profiumgebungen (IAR, Keil) wirst Du nur ganz wenige Libs für irgendwelche Hardwareerweiterungen finden. Die Auswahl ist einfach zu riesig.

... denn die braucht man ja äusserst oft.

Das "man" ist aber sehr weit aus dem Fenster gelehnt. Was Du persönlich benötigst, muß noch lange nicht allgemein gültig sein.

#7367411
Lesenswert?

Gerhard H. schrieb:

Man verzeihe mir eine sicher dumme Anfängerfrage:

Bei electronicwings.com gibt es ein Source- File für eine RTC-Uhr: https://www.electronicwings.com/avr-atmega/real-time-clock-rtc-ds1307-interfacing-with-atmega16-32

Ich komme nicht drauf, was ich anstelle von "I2C_Master_H_file.h" verwenden muss, denn die Header- Datei ist unbekannt. Für die LCD ist mir lcd-routines.h klar aber brauche ich denn wirklich für I2C einen eigenen Header? Oder stehe ich da auf dem Schlauch? Für sachdienliche Hinweise bedanke ich mich schon mal im Vorhinein!

Gerhard

Ich kann Deine Probleme gut nachvollziehen. Die Kritik an Dir teile ich nicht. Wenn schon jemand wie hier electronicwings etwas verkaufen will, bzw. anpreist, dann sollte die vorgestellte Software auch vollständig sein. Und eine Header-Datei gehört in jedem Fall dazu. Ein Link auf diese Datei wäre das Mindeste.

Mir ist das vor ein paar Wochen ebenso ergangen als ich von Ardurino 1.8 auf 2.0 umgestiegen bin. Bei zwei Projekten waren auf einmal Header-Dateien fehlerhaft, bzw. passten nicht mehr.

Anbei eine Adresse, bei denen ich bisher noch nie entäuscht worden bin. https://randomnerdtutorials.com/

mfg Klaus

#7367423
Lesenswert?

Klaus R. schrieb:

Wenn schon jemand wie hier electronicwings etwas verkaufen will, bzw. anpreist, dann sollte die vorgestellte Software auch vollständig sein. Und eine Header-Datei gehört in jedem Fall dazu. Ein Link auf diese Datei wäre das Mindeste.

Es gehört tatsächlich noch mehr dazu als nur der Header. Und all das findet sich ohne großes suchen auf der o.a. Webseite.

Allerdings erfordert die Nutzung von Software anderer Leute tatsächlich, daß man wenigstens den Versuch macht, zu verstehen, um was es da geht. Völlig planloses kopieren tuts da selten.

Da stellt jemand kostenlos seine Arbeit ins Netz. Da kannst du noch so viel plärren und mit den Füßen aufstampfen, es nutzt nix. Was und wie derjenige sein Zueg ins Netz stellt, ist alleine dessen Sache. Du musst es ja nicht benutzen.

Oliver

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren