Gast
#221487
Folgendes Software-Problem in C:
Ich habe ein struct definiert
struct speicher
{
unsigned short strom;
unsigned short strom_mess;
}var;
Diesen Speicherbereich initialisiere ich
void init_speicher
{
var.strom=0x0000;
var.strom_mess=0x0000;
}
Ich lese über den AD-Wandler innerhalb einer ISR einen Messwert ein,
und schreibe ihn ins struct "var.strom".
Soweit so gut! Nun möchte ich den realen Wert aus dem Messwert
berechnen und ins struct "var.strom_mess" schreiben. Allerdings
klappt das nicht. Ich versuche es auf diese Weise: (bspw)
var.strom_mess=var.strom*5.5
Ich kann diese Umrechnung weder in der ISR, noch innerhalb einer
Funktion vornehmen. Es klappt partout nicht!!!
Allerdings, kann ich per printf den berechneten Wert ausgeben
printf("%f", (var.strom*5.5));
Kann mir jemand evtl nen Tipp geben, wie ich diesen berechneten Wert
ins struct bringen kann???
Außerdem habe ich Probleme mit nem simplen Vergleich. Wenn ich bspw.
if(var.strom<14){...}
dann ist die Aussage nur dann wahr, wenn var.strom=0!!! Wie kann das??
Sollte nicht auch ein True rauskommen, wenn var.strom=13.9 etc ist???
Bin für jeden Tipp wirklich dankbar
Gruß