Go Down

Topic: Ajuda com programação de estufa (Read 7913 times) previous topic - next topic

bubulindo

Se tirares o float isso resolve-se não?
This... is a hobby.

rafa_mazali

sem o float o tempo mostra apenas os minutos restantes e os segundos não,
assim se por exemplo faltare 0:59 segundos do tempo o lcd vai mostrar apenas o 0

bubulindo

Se queres segundos, não divides por 60...

Divides por mil e ficas com o numero total de segundos.
Depois ao dividires por 60, ficas com o numero de minutos, mas tens de arredondar para o inteiro mais baixo.

Usando o módulo de sessenta nesse valor deve dar-te os segundos em inteiro.
This... is a hobby.

rafa_mazali

Seria isso?

((Tempo em ms / 1000 / 60) % 60)

bubulindo

Não.

Quote

//isto vai dar-te o resultado em float, mas ao colocares em inteiro, arredondas para baixo obtendo os minutos.
unsigned int minutos = (unsigned int ) (tempo/1000)/60;

//isto dar-te á um numero entre 0 e 60 que indica o resto da divisão feita em cima.
unsigned int segundos = (unsigned int ) (tempo/1000) %60;


Eventualmente, se isso não funcionar, isto é, se ele arredondar, podes usar a função trunc.
Experimenta assim e diz como saiu.
This... is a hobby.

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy