Forum: Mikrocontroller und Digitale Elektronik AVR Studio+WinAVR Bibliotheken / library


von Franz (Gast)


Lesenswert?

@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

von Franz (Gast)


Lesenswert?

Sorry vergessen.

ATMega128

von Falk B. (falk)


Lesenswert?

@ 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

von Franz (Gast)


Lesenswert?

@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

von Falk B. (falk)


Lesenswert?

@ 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

von Franz (Gast)


Angehängte Dateien:

Lesenswert?

@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

von die ??? (Gast)


Lesenswert?

Normal sollte sie direkt im include-Ordner abgelegt sein. Jedenfalls ist 
sie dort bei meiner Installation.

von Stefan B. (stefan) Benutzerseite


Angehängte Dateien:

Lesenswert?

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.

von Franz (Gast)


Lesenswert?

@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

von Simon K. (simon) Benutzerseite


Lesenswert?

Übrigens ist die ".h Datei" nicht die Bibliothek, sondern quasi nur das 
Inhaltsverzeichnis der Bibliothek...

von Franz (Gast)


Lesenswert?

@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

von Stefan B. (stefan) Benutzerseite


Lesenswert?

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