"i" ist das Zahl zwischen 0 bis 1023 das den Widerstandsteiler der Tasten entspricht. Das kommt aus den ADCL und ADCH Registern nach dem Analog-digital umwandlung. Das sind zahlen ohne etwas hinter den Komma. "(float)" ist ein Auftrag für den Compiler das "i" als Fließkommazahl-zahl berechnet werden soll, und nicht als Integer-wert. "(unsigned char)" is ein Auftrag für den Compiler das dass Resultat als ein 8-bit wert ausgegeben soll werden. (0-255, ohne Fließkommazahl, darf auch nicht als negatife Wert benutzt werden.)
Also wird das wie folgend ausgerechnet:
Code:
return ((unsigned char) ((( 1024.0/762.0 - 1.0)) * 63.0 + 0.5));
! 762 laut deine eigene Berechnungen. Das wurde 780 sein mit Searcher's Berechnungen
Lesezeichen