esquece a matemática. de fato é meio que complicado vc fazer a conversão direta. depende p.ex da geometria da caixa (que acho que alguém já mencionou). se eu fosse você, veja o que você, que na verdade seria eu, faria:
-primeiro, certifique-se (co-me) que sua (minha) montagem proporciona uma medição qualquer de distância. ou seja deixe ele retornar o valor que quiser desde que seja linear
-numa caixa totalmente irregular...
-coloco xL de h2O
-anoto o valor medido numa const unsigned char tabela[]
-coloco +xL de h2O
-anoto o valor medido numa const unsigned char tabela[]
-coloco +xL de h2O
-anoto o valor medido numa const unsigned char tabela[]
-coloco +xL de h2O
-anoto o valor medido numa const unsigned char tabela[]
-...
-No meu (meu) caso cerca de 10 medições de 25L seriam suficientes. (De fato eu (eu) nem me importaria com o valor numérico exato dos litros. Bastar-me-iam as pro'porções' de h2O na caixa).
-com os dados em mãos, basta adicioná-lo ao fonte em forma de tabela e uns 10 if´s me fariam a conversão de cm para litros
na verdade acho que faria algo assim
unsigned char convete_cm_l(unsigned char cm)
{
unsigned char l=0;
while(cm<=tabela[l]) l++;
return l;
}
a-góra...
se a caixa for regular, anote (eu anotaria) os valores de vl_timer (unidades de timer) com ela vazia e cheia. Assim, apenas uma (ou duas) operação matemática simples faria a conversão. preguiça de pensar agora
e anda logo antes que comece o racionamento e ninguém vai poder te mandar ir tomar banho!
sei lá. ainda não pinguei meu colírio alucinógeno no 3º olho