Forum: Mikrocontroller und Digitale Elektronik UC3C und FPU


von Peter Hahne (Gast)


Lesenswert?

Hallo zusammen,

ich arbeite zur Zeit mit dem UC3C-ek. Ich würde mich gern ein wenig mit 
der FPU des UC3C beschäftigen.
Ich habe bisher immer gelesen, dass man die FPU derzeit nur mit dem IAR 
Compiler unter C verwenden kann. Da ich das AVRStudio 5 nutze muss ich 
also auf Assembler zurückgreifen?!?
Die DSP-Einheit ist auf den ersten Blick auch ganz interessant leider 
bietet sie ja nur Fixed-Point Berechnungen an. Gibt es da eine 
Möglichkeit auch Floatin-Point Berechnungen durchzuführen?

Viele Grüße
Peter

von cskulkw (Gast)


Lesenswert?

Ich glaube Peter, da wirst Du wohl Neuland betreten. Mein UC3C-EK ist 
leider abgeraucht.
Vielleicht sollten wir uns mal gebündelt an ATmel Norwegen wenden, um 
den klar zu machen, dass die float-Unterstützung für den GCC ein 
begehrtes Feature wäre.

Falls Du etwas raus gefunden haben solltest, dann lass es uns wissen.

von Peter Hahne (Gast)


Lesenswert?

Ich habe mal bai Atmel nachgefragt, warte aber noch auf eine Antwort.
Kannst du mir denn sagen, ob die DSP Unit auch mit floating point 
umgehen kann oder nur mit fixed point? ich finde es ja schon komisch, 
dass es darüber keine Angaben im Datenblatt gibt bzw habe ich darüber 
nichts gefunden.

von Purzel H. (hacky)


Lesenswert?

Weshalb sollte die DSP Einheit denn Floatingpoint koennen ? Hast du 
einen dermassen grossen dynamischen Bereich ? Denn die Genauigkeit nimmt 
ab. Ein 32bit floating point hat nur eine Mantisse von 24bit (5-6 
dezimale Stellen) waehrend eine 32bit integer, eine Mantisse von 32 bit 
(9 dezimale Stellen) hat.

von Mike (Gast)


Lesenswert?

OK dann fällt die DSP Einheit ja raus.
Kennt jemand denn Beispiele, wie man die FPU nutzt? Auch dazu finde ich 
in keinem Datenblatt etwas. Bei den Beispielen aus dem Framework ist ja 
auch nichts dabei. Schon komisch, dass Atmel mit der FPU wirbt aber 
selbst keine Beispiele stellt.

von cskulkw (Gast)


Lesenswert?

Vielleicht rechnet sie ja falsch, wie damals bei Pentium I mit der 
FDIV-Bug

von Florian F. (ultrazauberer)


Lesenswert?

Hat jemand bezüglich der FPU schon etwas herausgefunden? Ich quäle mich 
auch grade mit dem AT32UC3C-EK rum und muss bezüglich meiner 
Diplomarbeit da auch mal fix vorankommen. Ich stehe vor dem gleichen 
Problem... da ich Algorithmen mit massiver Summenbildung und 
Multiplikationen pro Iteration habe und ich ein halbwegs echtzeitfähiges 
System erarbeiten soll, wäre es interessant zu wissen, wie man die FPU 
anspricht.

Ich habe gedacht, dann weiche ich auf die DSP-Einheit aus und greife auf 
die fertige DSP Library zurück, allerdings habe ich da keinen Schimmer, 
wie ich meine Float-Werte in eine Festkommazahl und zurück konvertiere.

Es gibt ein Makro namens "DSP32_Q(float)", was eine Float-Zahl in eine 
Fixed-Point-Zahl konvertiert. Wie rechnet man diese Zahl wieder um? Der 
manuelle Weg funktioniert bei mir nicht (wenn man weiß, wieviel Bit auf 
den Ganzzahlteil und gebrochenrationalen Teil verteilt sind). Ich finde 
nirgends dazu Beispiele. Ich tappe irgendwie im Dunkeln...

von ... (Gast)


Lesenswert?

wo ist konktet das problem??? Der GCC unterstützt doch die FPU des 
UC3s...
leute leute, vieleicht solltet ihr weniger zeit ins gemecker 
investieren...
wer immer nur die hände in die luft reist, kann seine tastatur nicht 
mehr bedienen.....
um z.B. die nötigen compilerflags anzugeben -.-

von ... (Gast)


Lesenswert?

ansonsten... wo is das problem das in asm zu schreiben?

machste zur not C++ draus, schreibst dir die globalen operatoren für 
floats selbst. egal wie, wäre alles schon längst erledigt, in der zeit 
in denen ihr hier auf Antwort hofft (aber nur beschwerden kommen)

von Frank K. (fchk)


Lesenswert?

... oder nehmt einen Cortex M4F. Der tut auch nicht weh.

fchk

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.