Pesquisar neste blog

27/09/2022

Timer 0 com PIC 16F877A

O TIMERO está programado para causar uma interrupção a cada certo tempo, neste caso 20 ms. Toda vez que a interrupção ocorre, teste se o botão foi pressionado. No caso de ter sido pressionado, ele com teste se é um toque curto ou mais de 3 segundos. Para este último caso é verificado se o botão é pressionado durante 150 interrupções do TIMER (3s/20ms = 150). Se o botão não foi pressionado, é designado como o Function_D6 = 0, se foi pressionado uma vez por mais de 3 segundos é designado como Função JD 6 = 1, se tiver sido pressionado momentaneamente é designado como Function_D6 = 2 e se foi pressionado por mais de 3 segundos uma segunda vez é designada como o Function_D6 = 3. 
Para distinguir se foi pressionado por mais de 3 segundos uma ou duas vezes, é utilizada uma variável de controle (que se chamará CON_D6) que pode ser zero ou um, dependendo se é a primeira ou a segunda vez que é pressionado.
Para controlar o tempo que o botão é pressionado, é utilizada uma variável (D6) que irá
incrementando se o botão for pressionado e ocorrer uma interrupção TMRO.












Nenhum comentário: