Temporizador com interrupção

Boa tarde!
Estou com uma dúvida, e peço a ajuda para sanar meu problema, estou desenvolvendo um projeto na empresa de controle de umas lâmpadas, tendo dois modos, um automático e um manual, o automático vai funcionar com um LDR, que quando o valor abaixa de 200, atraca o relê, e o modo manual é ativado por um botão, meu problema é o seguinte, eu quero colocar um temporizador de meio ou 1 segundo para as leituras, mas eu gostaria de quando apertar um botão ele parar a contagem e mudar de automático para manual, o que me aconselham utilizar e se possível poderiam me enviar um exemplo?

Agradeço a atenção!

Millis()

Blink without delay

Viva hvgrillo! Bem-vindo ao fórum.

Não estou a ver a necessidade de parar as leituras. Pode continuar a fazer as leituras, mas ignorar o valor que é devolvido. Quanto à duvida propriamente dita, o bululindo já disse tudo. Pode também dar uma vista de olhos no código deste post que foi um código que escrevi ontem para outro utilizador do fórum. A semelhança que tem com o seu é que utiliza o botão e o millis().

Pessoal! Agradeço as respostas e dicas, eu realmente tinha tentado com o Millis mas haviam alguns erros na programação, os corrigi e agora está perfeito! adicionei um delay de 50 micros após pressionar o botão para corrigir o Debouncing.

50 micros não deve fazer grande coisa ao debouncing, mas tudo bem.