Gast
#1376412
hallo. ich habe einen temperatursensor, der die temperatur als 11bit wert ausgibt an einen atmega8 angeschlossen. der 11bit wert liegt also in zwei 8bit registern vor. im datenblatt des sensors steht zur umrechnung folgender c-code: value_float = ((float)temp_value / 2047 * 200) - 50; ich bin ehrlichgesagt etwas überfragt, was divisionen in assembler angeht... wie rechne ich den vorliegenden bit-wert so um, dass ich die ganze zahl (bereich von -50 bis 130) in einem register und den wert hinter dem komma (auf eine nachkommastelle gerundet) in einem anderen register stehen habe? das vorzeichen sollte dann noch im negativ flag angegeben werden. diese trennung von ganzzahl und kommazahl in 2 register wäre mir am liebsten, weil ich die zahlen dann einfach auf meinem lcd ausgeben kann und einfach von hand noch das minus ausgeben lasse wenn das entsprechende flag gesetzt ist und ich auch einfach das komma ausgeben kann. also: [vorzeichen][ganzzahl (registerX)][,][kommastelle (registerY)] wie würde man das anstellen? beispiel code wäre super! ich wäre auch schon zufrieden, wenn statt der oberen formel einfach: value_float=temp_value/10-50 durchgeführt wird...ist ja beinahe dasselbe.