O tempo necessário para carregar um capacitor depende da resistência entre vdd e o capacitor. Quando uma chave é pressionada, Vdd é aplicada a diferentes pontos de uma escada de resistores. A resistência entre Vdd e o capacitor será então reduzida conforme a chave, o que faz com que o tempo de carga do capacitor seja reduzido. Um timer é usado com um comparador mudando a entrada digital para medir o tempo de carga do capacitor. O tempo de carga é usado para determinar qual dos botões foi pressionado. A seqüência de software é a seguinte:

1.Configure GP2 para entrada numa baixa tensão para descarregar o capacitor através do resistor I/O.
2.Configure GP2 como uma das entradas do comparador e Cvref como a outra.
3.Use um timer para medir quando o comparador muda. Se o tempo medido for maior do que o tempo máximo permitido, repita, de outra forma, determine qual o botão pressionado.

Quando uma chave é pressionada, a rede divisora de tensão muda a constante de tempo do circuito RC e com isso a rampa de carga do capacitor. Na figura abaixo o diagrama para a aplicação.



Obs: O AN512 da Microchip dá idéias para se usar configuração semelhante como ohmímetro e sensor de temperatura.