Hallo Leute, Habe eine Große herausvorderung vor mir. bin jetzt seit fast einem haben tag dran und komme einfach nicht weiter. Folgendes problem: Ich habe einen ADC dem ich am Mega 256 mit I2C betreibe. Jetzt habe ich ein Programm geschrieben wo ich strom und spannung eingeben kann und die Maximal werte dafür festlegen kann. Funktioniert soweit eigentlich. Aber die Maximal werte sind Variabel d.h. man kann sie während des ablaufs ändern. Wenn ich also einen wert z.b. 27 angebe soll 27 auch ausgegeben werden unabhängig vom Max wert. wenn der Maximal wert aber kleiner ist als der angegebene dann den Maxwert ausgeben. wenn ich also den Max wert 100 eingebe dann den sollwert 50 funktioniert es einwand frei. wenn ich jetzt den Max wert auf 200 erhöhe dann gibt der DAC mir 45 aus obwohl immer noch 50 eingestellt sind. Und je höher der Maxwert ist desto mehr weicht es von dem Sollwert ab. hier noch die routine
1 | //Strom Berechnen und ausgeben
|
2 | /************************************************/
|
3 | /**/ Teiler = Soll_Strom*65535; //65535 die Auflösung des DAC´s |
4 | /**/ Teiler = Teiler / Max_Soll_Strom; |
5 | /**/ I2C(I2C_SollStrom_CMD,Teiler); |
6 | /************************************************/
|
Weiß jemand ne lösung? Mathematiker unter eucht?