Gast
#1520789
Hallo,
ich habe folgendes Problem:
Ich habe eine Funktion programmiert und diese im SOPC Builder über
Custom Instructions eingebunden.
Nun möchte ich diese im Nios verwenden und habe Sie folgendermaßen
aufgerufen.
Es handelt sich um ein Programm, dass Gleitkommazahlen in Integerzahlen
umwandelt!
-----------------------------------------------------------------
#include <stdio.h>
#include <math.h>
#include <system.h>
int FLOAT_TO_INT(int val){ // Float to Int
return ALT_CI_FLOAT_TO_INT_INST(val,0) ; }
float index = -100.0;
int *pval = (int *)&index ;
int main(void){
while (1){
index+=5.0;
printf(" Dez: %d\n",FLOAT_TO_INT(*pval));}
------------------------------------------------------------------
Ich habe hier den Umweg gewählt und einen Pointer auf meinen Float
zeigen lassen, diesen Zeiger dann in Integer gespeichert und der
Funktion übergeben.
Nun würde ich meiner Funktion gerne direkt den Float übergeben ohne den
Umweg über den Zeiger. Leider funktioniert mein Programm dann nicht
mehr. Ich hatte gehofft, dass es reicht, in der folgenden Zeile (int)
einfach durch (float) zu ersetzten, doch das reicht nicht.
-------------------------------------------------------------------
int FLOAT_TO_INT(float val){ // Float to Int
return ALT_CI_FLOAT_TO_INT_INST(val,0) ; }
float index = -100.0;
int main(void){
while (1){
index+=5.0;
printf(" Dez: %d\n",FLOAT_TO_INT(index));}
------------------------------------------------------------------
Kann mir vielleicht jemand helfen, welche Änderung ich vornehemn muss,
damit ich der Funktion auch einen Float übergeben kann?
Mfg Christoph