PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie sin() über USART ausgeben?



Florian
23.06.2006, 19:49
N'Abend!
Wie kann ich die Kommawerte der z.B. sin()-Funktion der math.h über USART ausgeben?

Viele Grüße
Florian



*edit*: Als String meine ich!

AVR-Gcc in AVR-Studio verwende ich ...

uwegw
23.06.2006, 21:46
STFL...
dtostrf() aus stdlib.h

Florian
23.06.2006, 21:49
Hallo Uwe!
Geht das so einfach, mit nur einer Funktion!?

Nagut ... ;o)

Gute Nacht
Florian

stochri
23.06.2006, 21:57
Hallo Florian,
genauer weis ich's grad auch nicht, aber mir fallen folgende Funktionen ein

itoa ==> integer to asccii
ftoa ==> weis nicht, ob's das in avr-gcc gibt

normalerweise geht es mit

sprintf ... ==> hat aber avr-gcc nicht

ansonsten gibt es den Thread hier

http://www.mikrocontroller.net/forum/read-2-11536.html

Ich habe es schon mal folgendermaßen gemacht:

void printfloat(float x)
{
int num,num2;

num=x;
num2=(x-num)*10;
printf("%d.%d",num,num2);
}

Diese Version ist ziemlich Speicherplatzsparend.

Falls Deine printf Funktion nicht auf die serielle Schnittstelle geht, kannst Du die beiden Integer-Werte mit itoa( int wert ) in ascii verwandeln und dann die einzelnen Zeichen getrennt raus schicken.

Gruss,
stochri

Florian
23.06.2006, 22:06
Danke vielmals! :o)

izaseba
23.06.2006, 22:20
sprintf ... ==> hat aber avr-gcc nicht

Wie kommst Du darauf ?

sehe hier (http://www.nongnu.org/avr-libc/user-manual/group__avr__stdio.html)

Gruß Sebastian

stochri
23.06.2006, 22:20
Hallo Florian,

Hab noch einen Thread gefunden, über die Problem der dtostrf() Funktion.

http://www.mikrocontroller.net/forum/read-2-17545.html

Würde mich interessieren, ob die bei Dir gut funktioniert.

Auch gute Nacht,
stochri

Florian
23.06.2006, 22:36
Hmm, also irgendwie hängt sich mein AVR-Studio auf, wenn ich die stdlib.h einbinde! ;o)=

stochri
24.06.2006, 07:46
sprintf ... ==> hat aber avr-gcc nicht
Wie kommst Du darauf ?

Hallo Sebastian,
tja, da habe ich mich wohl getäuscht.
Allerdings hatte ich vor längerer Zeit das selbe Problem wie Florian, ich wollte eine Float-Zahl auf einem LCD-Display darstellen. Die printf-Funktion hatte sich entweder aufgehängt oder das falsche Ergebnis geliefert. Nachdem ich mich eine Weile damit rumgeärgert hatte, habe ich die Ausgabe wie oben beschrieben realisiert. Dort werden einfach zuerst die Vorkomma-Stellen und dann der Punkt und eine Nachkommastelle getrennt dargestellt.
Das Verfahren braucht wesentlich weniger Speicherplatz als das Einbinden der Float nach String Formatkonvertierungen.

Gruss,
stochri

izaseba
24.06.2006, 10:16
Hallo stochri,

Ich habe ehrlich gesagt mit sprintf und Fließkommazahlen auf einem µC bis jetzt nichts gemacht,programmiere gerne in Assembler und da sucht man andere Lösungen :-)

Daß die stdio.h viel Speicher schluckt ist ja bekannt, ich wollte nur nett darauf hinweisen daß es die Funktion wohl gibt :wink:

Gruß Sebastian

Florian
24.06.2006, 15:27
*kloppt euch* ;o)=


ich wollte nur nett darauf hinweisen daß es die Funktion wohl gibtDanke!

Ich muss jetzt nur erstmal hinter her kommen und endlich programmieren...

Viele Grüße
Florian



PS: Hatte gerade ein Vorspiel mit meinem Akkordeon-Orchester.
Bei dem Wetter ist es echt sch... zu spielen, die Finger waren so glitschig ... :o(
http://www.cer-online.de/page/bilder/akkordeon.jpg

Florian
24.06.2006, 16:13
Nochmal eins:
https://www.roboternetz.de/wissen/index.php/Avr-gcc#Vermeide_printf.2C_scanf.2C_malloc

*lol*

Florian
24.06.2006, 16:46
Wisst ihr, was mich verwundert!?
Irgendwie stürzt jedes Mal mein AVR-Studio mit AVR-Gcc ab, wenn ich eine weitere Bibliothek einfüge, z.B. bei der stdio.h.
Bei der math.h komischer Weise nicht!

Woran kann das liegen?

Viele Grüße
Florian

stochri
24.06.2006, 16:52
*kloppt euch* ;o)=


So schlimm ist es dann wieder nicht O:)

Übrigens muss ich bei meiner obigen Routine die Zeichenausgabe mit folgendem Konstrukt

void lcd_putc(char c);
static FILE chstandartout = FDEV_SETUP_STREAM(lcd_putc,NULL,_FDEV_SETUP_WRITE) ;

auf das LCD umleiten. ( lcd_puchar ist die Zeichenausgabroutine ). Fragt mich bloss nicht nach dem Syntax, den habe ich irgendwo so gefunden. Mittlerweise würde ich anstatt printf auch eher itoa verwenden, das ist übersichtlicher un man weiss, was gemacht wird.

Auf die selbe Art und weise müßte es auch mit der seriellen Schnittstelle gehen.

soweit,
stochri

stochri
24.06.2006, 16:56
Wisst ihr, was mich verwundert!?
Irgendwie stürzt jedes Mal mein AVR-Studio mit AVR-Gcc ab, wenn ich eine weitere Bibliothek einfüge, z.B. bei der stdio.h.
Bei der math.h komischer Weise nicht!

Passiert es nur, wenn Du die Bibliothek einbindest, oder wenn Du eine bestimmte Funktion verwendest ?
Nach den Threads im Mikrocontrollernet würde ich auf ein Speicher Problem tippen. Bei printf hatte ich glaub auch schon Probleme, itoa müsste aber gehen.

Gruss,
stochri

Florian
24.06.2006, 17:01
So, also ohne die Bibliothek funktioniert alles (natürlich ohne die Funktion, für die ich die Bibliothek brauche), aber sobald ich die Bibl. einfüge geht garnichts mehr, da muss ich sogar über den Taskmanager alles abbrechen und abmelden ...

Probiere ich mal itoa ...



*edit*:
Ich habe jetzt in das Programm die stdlib.h eingefügt und schon stürtzt alles ab, ich habe noch nicht mal die itoa-Funktion drin ...

Florian
24.06.2006, 21:13
So, das Problem mit den Bibliotheken ist gelöst! *freu*
Ich habe das AVR-Studio neu installiert und jetzt funktioniert es!

Jetzt muss ich nur noch die ganzen Funktionen ausprobieren ...

Viele Grüße
Florian

izaseba
24.06.2006, 21:38
Das ist komisch,
Habe hier im Forum schon öfters über Probleme mit AVR-Studio gelesen,
verstehe es nicht, daß die Jungs es nicht auf die Reihe kriegen stabile Software zu schreiben...

Kann man nicht Eclipse dazu überreden als Entwicklungsumgebung für avr-gcc
zu arbeiten?
Meine Erfahrungen mit Eclipse (zumindest in Verbindung mit Java) sind durchaus positiv gewesen.
Da hat sich Sun mehr mühe als Atmel gegeben :-)

Ich meine schon was drüber gelesen zu haben, mal schauen...

Gruß Sebastian

Florian
24.06.2006, 21:46
Da hat sich Sun mehr mühe als Atmel gegebenEclipse ist aber von IBM ... finde Eclipse aber auch sehr gut! :o)

Hatte früher noch nie Probleme mit'm AVR-Studio, aber das hat mich geärgert, 3 Stunden verschenkt! ;o(

izaseba
24.06.2006, 21:50
Ups IBM, wie komm ich jetzt auf SUN (schämm)

finde Eclipse aber auch sehr gut!

Habe glaube auf mikrocontroller.net galesen wie man es für avr einrichtet, mal suchen...

Florian
24.06.2006, 21:53
Ups IBM, wie komm ich jetzt auf SUN (schämm)*lol*
Dafür hat Sun in Amerika den ersten experimentellen Kernfusionsreaktor gebaut! ;o)

Habe glaube auf mikrocontroller.net galesen wie man es für avr einrichtet, mal suchen...Ist mir irgendwie wieder viel zu viel zum experimentieren ...

Viele Grüße
Florian

stochri
24.06.2006, 23:09
Habe hier im Forum schon öfters über Probleme mit AVR-Studio gelesen,
verstehe es nicht, daß die Jungs es nicht auf die Reihe kriegen stabile Software zu schreiben...


Bei mir läuft es auf einem Rechner sehr stabil, auf einem anderen habe ich eine andere Version, da wird der Speicherverbrauch und die Fehlermeldungen nicht richtig angezeigt.

Aber wenn man die richtige Version von AVR-Studio und die entsprechenden Patches erwischt, läuft es absolut einwandfrei.

Gruss,
stochri[/quote]

izaseba
25.06.2006, 00:19
Wußte ich doch :-)
Hier ist der Link http://www.mikrocontroller.net/articles/AVR_Eclipse

@stochri,
das glaub ich Dir gerne, meine 3.??? Version läuft auch absolut stabil :lol:
Das hab ich nur irgendwie mitbekommen, daß es ein paar Leute gibt, die da Probleme haben.

Gruß Sebastian

pebisoft
25.06.2006, 09:38
Habe hier im Forum schon öfters über Probleme mit AVR-Studio gelesen,
verstehe es nicht, daß die Jungs es nicht auf die Reihe kriegen stabile Software zu schreiben...


der fehler wird vom anwender gemacht. avr-studio ist wasserfest.

Florian
25.06.2006, 09:56
Moin!
@ stochri:

entsprechenden PatchesVon was für Patches redest Du?
Das SP2 o.ä.?
Also ich lade mir nur mal ab und zu die neuste Version vom AVR-Studio herunter, von Patches wusste ich nichts! ;o)

@ Pöbelsoft:

der fehler wird vom anwender gemacht. avr-studio ist wasserfest.Jaja, und Microschrott baut auch die besten Betriebssysteme der Welt ... schon klar!
Nichts ist unfehlbar und es gibt überall Fehler!
Ja, man glaubt es kaum, auch Menschen sind nicht unfehlbar ... auch Du nicht! *lol*

In diesem Sinne und verzeiht mir bitte diese dummen Sprüche ...

Viele Grüße
Florian

stochri
25.06.2006, 10:04
Florian:
Ich meinte sowas hier:
http://www.atmel.no/beta_ware/as4/412sp3/index.htm

Florian
25.06.2006, 10:08
Hallo Stochri!
Wie kommt man an sowas dran?
Kann man das schon bedenkenlos nutzen?

Hanni
25.06.2006, 11:29
Hallo Stochri!
Wie kommt man an sowas dran?
Kann man das schon bedenkenlos nutzen?

z.B. über avr-freaks.net
Im allgemeinem kjann man diese Software bedenkenlos nutzen.

Grüße,

da Hanni.

Florian
25.06.2006, 11:33
Ok, danke Dir! :o)