@all, ich habe bis jetzt nichts gefunden, wo ich mir eine lib (aktuell) herunterladen kann. Ich wollte in meinem Programm printf verwenden da ich dies mit den oben erwähnten Programmen noch nicht gemacht habe wollte ich nun die stdio.h einbinden doch leider kann ich diese nicht finden. Wenn ich mich noch recht erinnere benötige ich die stdio.h fur printf. Kann mir jemand sagen wo ich diese downloaden kann. DANKE FRANZ
@ Franz (Gast) >ich habe bis jetzt nichts gefunden, wo ich mir eine lib (aktuell) >herunterladen kann. Wozu? Im WINAVR-Paket ist alles schon komplett drin. >Ich wollte in meinem Programm printf verwenden da ich dies mit den oben >erwähnten Programmen noch nicht gemacht habe wollte ich nun die stdio.h >einbinden doch leider kann ich diese nicht finden. Ist dabei, muss nur ggf. extra dazugelinkt werden. Einstellbar im AVR-Studio unter den Projektoptionen. >Wenn ich mich noch recht erinnere benötige ich die stdio.h fur printf. Einfach includen, dazulinken und nutzen. MFG Falk
@Brunner, das ist ja das Problem, ich kann die stdio.h nicht finden. Ich hab den WinAVR Ordner durchsucht jedoch ohne Erfolg die Datei ist nicht vorhanden. Daher suche ich diese, kann man die Lib's irgentwo downloaden? Franz
@ Franz (Gast) >Ich hab den WinAVR Ordner durchsucht jedoch ohne Erfolg die Datei ist >nicht vorhanden. Daher suche ich diese, kann man die Lib's irgentwo >downloaden? Warum machst du nicht einfach mal
1 | #inlucde <stdio.h>
|
Und schaust was der Compiler dazu sagt? MFG Falk
@Brunner, wenn ich
1 | #inlucde <stdio.h>
|
mache kommt eine Fehlermeldung, dass er die stdio.h nicht finden kann. Ich habe die komplette Festplatte nach einer Datei stdio.h durchsucht und diese ist definitiv nicht vorhanden. Zur Fehlermeldung siehe Anhang. Franz
Normal sollte sie direkt im include-Ordner abgelegt sein. Jedenfalls ist sie dort bei meiner Installation.
Was passiert, wenn du die -I Option zum Setzen eines neuen Includepfades weglässt und dieses kleine Programm übersetzt?
1 | #include <inttypes.h> |
2 | #include <stdio.h> |
3 | |
4 | int main(void) |
5 | {
|
6 | uint16_t i; |
7 | |
8 | i = 23 * 42; |
9 | return printf("%d", i); |
10 | }
|
Wenn dein WinAVR Includeverzeichnis nicht ähnlich wie oben im Bild aussieht, ist was mit der WinAVR-Installation schief gegangen. Ich würde dann (nur) WinAVR deinstallieren und neu installieren. Wichtig: Die Pfade zu WiNAVR müssen im Systempfad eingetragen sein (Bei mir in Autoexec.Bat: set PATH=d:\winavr\bin;d:\winavr\utils\bin;%PATH%). Bei Installationen vom WinAVR mit Leer- oder Sonderzeichen im Pfad kann ich mir auch Probleme vorstellen.
@all, ich habe nach der INFO von ??? den WinAVR auf einem anderen Rechner installiert und dort ist die stdio.h enthalten. Ich habe jetzt gesehen, dass noch einige andere .h Dateien fehlen. Warum dies so ist ist mir selbst ein Rätsel. Ich habe nun den gesamten avr ordner eingefügt und siehe dar der Fehler ist weg. Der Fehler sitzt mal wieder vor dem Monitor!!! ;-) Franz PS: Danke an alle
Übrigens ist die ".h Datei" nicht die Bibliothek, sondern quasi nur das Inhaltsverzeichnis der Bibliothek...
@all @Simon: Danke für die Richtigstellung. Ich habe nun die stdio.h eingebunden.
1 | #include<stdio.h> |
2 | |
3 | int main(void) |
4 | {
|
5 | /* ...... Initialisierung der Schnittstellen UART0 und UART1*/
|
6 | |
7 | printf("Hello World"); |
8 | |
9 | return 0; |
10 | }
|
Nun ist das Problem weder auf der einen noch auf der anderen Schnittstelle kommt etwas raus. Schnittstellen werden initialisiert 9600Baud,8 Datenbits,EVEN Parity,1 Start- und Stopbit. Ich habe mit dieser Einstellung schon Daten transferiert jedoch nicht mit printf. Muss ich irgentwo noch zuweisen an welche Schnittstelle geschickt werden muss wenn ich printf verwende. Danke
Gehe zur avr-libc Online Doku http://www.nongnu.org/avr-libc/user-manual/group__avr__stdio.html Und schau dir das erste Beispiel an, wie man die Ausgabe über UART an printf koppelt.
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.