Danke Egon. also ich ändere gleich, werde gleich (#include <nibo/pwm.h> noch dazu schreiben. aber wie gesagt, ich habe das Programm erst mit AVR studio geschrieben und nicht online compiler benutzt, und bei mir funtioniert alles einwandfrei ohne warnungen.
Letzte Änderung: 12 Jahre 5 Monate her von Romka1.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Hm...komisch, denn OHNE #include<pwm.h> MUSS der Compiler eine warning bringen (so in der Art "implizite declaration of pwm_init()", denn im Programm wird ja pwm_init() aufgerufen; könnte evtl mit Deinem AVR-Studio und dessen Einstellungen zusammenhängen.
Jedenfalls MUSS für jede verwendete Fkt, die extern deklariert wurde, ein Header-file mit inkludiert werden (prinzipiell gesprochen) - ist auch in jedem C-Kurs nachzulesen
Jedenfalls weiter so! Je mehr sich hier engagieren, desto lebendiger wird das Forum!
Egon
lokalisieren, eliminieren, Vollzug melden
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Danke noch mal für Tipp Egon. Ich habe jetzt korrigiert und die pwm.h inkludiert. Ich weiß auch nicht warum beim mir AVR keine Meldung oder Warnung agezeigt. Ich werde auch mehrere Projekte auf dieser Webseite anlegen. Ich werde mich freuen auf eure Bewertungen und was ich besser machen kann oder korrigieren muss. Als nächstes heute Abend lege ich nächstes Projekt an. Die Projektname wird "Scheinwerfer Test". Also die User können dann anschauen die niedrigste und maximale helligkeit des Scheiwerfers von 0 bis 1024 und danach von 1024 auf 0.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
leider ist die Zusammenstellung der Lib mehr als unübersichtlich, aber dieses wird nicht zum ersten mal festgestellt.
Den Sinn der Zerstückelung verstehe zumindest ich nicht wirklich.
Da "pwm.h" auch schon von der Lib selbst benötigt wird, erfolgt das Includen der "pwm.h" schon vor dem Anwenderprogramm. Doppeltes Includen funktioniert zwar und benötigt zusätzlichen (mittlerweile nicht mehr kostbaren) Speicherplatz, macht aber keinen brauchbaren Sinn.
"pwm.h" wird aufgerufen in der Datei der Lib "...\src\nibo\leds.c"
So weit mir bekannt, sind die ausgegebenen "warnings" der Compiler nicht genormt und können somit von Compiler zu Compiler abweichen. Warum sich der "roboter.cc"-Compiler hier selbst anmeckert, das sollte der Erzeuger bitte einmal selbst begründen. (Wenn geht OHNE Schweigen!)
(Ich hatte schon mal darum gebeten, eine "Include-Hirachie" aufzuzeigen. Die Abhängigkeiten sind leider ohne Anleitung nur schwer zu verstehen und für Programmieranfänger eine fast unüberwindbare Hürde. Teilweise muss auch die Reihenfolge der Includes berücksichtigt werden, um ein fehlerloses Compilieren zu schaffen.)
@Egon
Würdest Du mal bitte erklären, wie man ein C-Programm so schreiben kann, dass es allen möglichen und erdenklichen Compilern und deren Konfigurationen gerecht wird.
Die in der Nibo2-Anleitung beschriebene Verzeichnisstruktur für die Konfigurationseintragungen ist nur eine Empfehlung, sie kann bei jedem Anwender individuell anders sein.
Grundsätzlich hast Du ja recht, wenn man einen jungfräulichen Proz programmieren will, nur durch die hier schon aufgebrachte Firmware sieht alles aber etwas anders aus.
Gruß aus Werl elektrolutz
Theorie ist, wenn man weiß, wie alles funktioniert. -- Praxis ist, wenn alles klappt und keiner weiß warum!
Der Administrator hat öffentliche Schreibrechte deaktiviert.
1.) Zum Thema "pwm.h" => check mal das Programm "led3.c" bezgl Aufruf "pwm.h"
2.) "Die in der Nibo2-Anleitung beschriebene Verzeichnisstruktur für die Konfigurationseintragungen ist nur eine Empfehlung, sie kann bei jedem Anwender individuell anders sein." - dieser Satz ist imho nicht korrekt, denn wenn sie anders ist, bekommt der User Probleme.
3.) Zum C-Programm schreiben, damit es möglichst (!) plattformunabhängig ist - "google ist dein freund"
Egon
edit - habe eben das Programm von Romka1 OHNE #include <pwm.h> im AVR Studio 4 compiliert => natürlich Warnung "implicit declaration of pwm_init()" => die kommt dann, wenn man bei den Custom Compilation Options den Parameter -Wall angegeben hat - und das sollte man schon machen... lieber Freund elektrolutz, das hat mit dem led.c nix zu tun!!!!
"Grundsätzlich hast Du ja recht, wenn man einen jungfräulichen Proz programmieren will, nur durch die hier schon aufgebrachte Firmware sieht alles aber etwas anders aus. " - was soll mir der Satz sagen?
In C ist es möglich Funktionen aufzurufen ohne sie vorher deklariert zu haben - das ist natürlich nicht empfehlenswert ! Aus diesem Grund kann pwm_init() aufgerufen werden ohne die Datei "pwm.h" einzubinden. Der GCC Compiler stellt Optionen (z.Bsp. -Wall) zur Verfügung, damit der Compiler möglichst an allen unschönen Stellen meckert...
Somit kommt es je nach Einstellungen zu einer Warnung, oder eben nicht!
Der Administrator hat öffentliche Schreibrechte deaktiviert.