Forum: Mikrocontroller und Digitale Elektronik printf AVR Studio


von Tartaruga (Gast)


Lesenswert?

Hi
Ich weiss das es viele Beiträge gibt für printf allerdings habe ich 
leider keine Lösung gefungen. Ich möchte bestimmen wie lange mein 
Rechtecksignal auf 1 ist. dazu benutzte ich einenn externen Interrupt 
und einen Timer. Nun möchte ich mir alle timerergebnisse ausgeben lassen 
damit ich sehen kann wie weit die werte von einander abweichen. Wenn ich 
ein printf programmiere mit den timerwert habe ich zwar keine Proble mit 
dem Compelieren und Linken aber wo kann ich mir denn jetzt das printf 
anschauen????

Danke für eure Hilfe
lg
Tartaruga

Ps: AVR Studio 4.13
    avr libc 1.4.6

von Karl H. (kbuchegg)


Lesenswert?

Tartaruga wrote:

> dem Compelieren und Linken aber wo kann ich mir denn jetzt das printf
> anschauen????

Gute Frage.
Welche Möglichkeiten zur Ausgabe hast du denn?

Man kann im WinAvr das Standard I/O System so konfigurieren,
dass man die Ausgabe auf jedes beliebige Ausgabegerät bringen
kann. Dazu muss man sich eine Funktion schreiben, welche sich
um den Transport eines Zeichens kümmert. Diese eine Funktion
wird dem stdio System quasi untergejubelt. Das stdio System
benutzt zur Ausgabe immer deine Funktion und damit kannst du
die Ausgabe dorthin routen wo du sie haben willst.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Z.B. in einem Terminalprogramm auf dem per RS232 angeschlossenen PC. 
Allerdings ist auf AVR Seiten etwas Programmierarbeit nötig (Umleitung 
der STDOUT auf UART; UART Initialisierung)

Beitrag "Anweisungsverhalten von printf() unter WinAVR"

Gefunden von Fr. Google mit den Stichworten avr-libc printf

von Falk B. (falk)


Lesenswert?

@ Tartaruga (Gast)

>dem Compelieren und Linken aber wo kann ich mir denn jetzt das printf
>anschauen????

Direkt gar nicht. Aber über fprintf kannst du nen String erzeugn, 
welcher dann auf denUART ausgegeben werden kann.

AVR-GCC-Tutorial

MfG
Falk

von Tartaruga (Gast)


Lesenswert?

Danke für eure Antworten ich habe gehofft das ich keinen UART 
programmieren muss aber so wie es aussieht wird es unumgänglich sein
Danke für eure schnelle Hilfe
lg
Tartaruga

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Tartaruga wrote:

> Danke für eure Antworten ich habe gehofft das ich keinen UART
> programmieren muss aber so wie es aussieht wird es unumgänglich sein

Nein, du kannst ja bspw. auch ein LCD-Display anschließen und es
darauf ausgeben. ;-)

Beispiele findest du, wer hätte es gedacht :-), im Beispielcode:

http://www.nongnu.org/avr-libc/user-manual/group__stdiodemo.html

von Karl H. (kbuchegg)


Lesenswert?

Jörg Wunsch wrote:
> Tartaruga wrote:
>
>> Danke für eure Antworten ich habe gehofft das ich keinen UART
>> programmieren muss aber so wie es aussieht wird es unumgänglich sein
>
> Nein, du kannst ja bspw. auch ein LCD-Display anschließen und es
> darauf ausgeben. ;-)

Wenn man schnell schauen kann und den ASCII Code auswendig
kann, kann man auch einfach mal 8 LED an einem Port anschliessen
und dort die LEDs flackern lassen :-)

von Gregor B. (gregor54321)


Lesenswert?

Oder Du debugst mittels JTAG-Interface und schaust Dir den Inhalt von 
fprinf direkt im Speicher des uC an.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Gregor B. wrote:

> Oder Du debugst mittels JTAG-Interface und schaust Dir den Inhalt von
> fprinf direkt im Speicher des uC an.

Eher sprintf() dann.

von Tartaruga (Gast)


Lesenswert?

@Karl heinz Buchegger
Ich habe LEDs angesteuert zwecks hardware debugging allerding togglen 
die nicht mehr sonder leuten nur noch
aber danke für den tipp

von Karl H. (kbuchegg)


Lesenswert?

Tartaruga wrote:
> @Karl heinz Buchegger
> Ich habe LEDs angesteuert zwecks hardware debugging allerding togglen
> die nicht mehr sonder leuten nur noch
> aber danke für den tipp

Das sollte eigentlich ein Scherz sein :-)
Nächstes mal mache ich 10 Smilies.

von Tartaruga (Gast)


Lesenswert?

jaja ich weiß wollte das nicht so im raum stehen lassen.....

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.