> Misstänkte att det var ngt sådant men blev ändå rätt ställd att det var så illa...
Är det "illa" att kompilatorn försöker göra det du ber om!?
> Men, en bra kompilator brukar genomskåda skitprogrammering och åstadkomma bättre.
Exakt hur skulle det göras bättre av kompilatorn? Genom att *inte*
länka in floating-point stödet då man uttryckligen ber om det i koden?
Lösningen är så klart att se över sina algoritmer så att man inte ber
om något i onödan.
>Currenlimit [...] Den är dekl som float men kommer ändra till int.
Ja där har du ju ett direkt fel också.

Du ska i princip aldrig använda
något som har med floating-point att göra på dessa processorer.
> Jag kanske missförstår men shuntvalue är ett inläst adc värde mellan 0-3V så jag ser inte hur du får det till att det skulle vara 0. 1.2.3.
ADC värdet kan vara som minst 0 och som störst 1023.
(0*3.3)/1024 = 0
(1023*3.3)/1024 = 3 (efter avrundning neråt).
Alltså 0, 1, 2 eller 3) beroende på värdet från ADCn.
Nu så vet vi ju inte matningsspänning, ADCs ref spänning o.s.v, men du kanske
aldrig får värdet 3 heller och max inspänning är 3V och matningen 5V.
> I verkligheten är det ca 900mv 1560mv och 2700 mv. Så dessa är fasta värden och inget jag räknar.
OK, då kan du i förväg räkna ut vilka ADC värden som detta motsvarar och
sedan lägga dessa värden direkt i koden och jämföra det direkt med ADC
värdet utan några beräkningar alls.
Vad det ser ut som är att du försöker skriva koden så att den använder värden
som är skalade till "verkligheten", d.v.s värden som är uttryckta i mV. Helt
onödigt så klart, processorn har inte en susning om vad mV är i alla fall...
