Ir ao conteúdo

Semáforo com c utilizando interrupção com timer


Davyjones

Posts recomendados

Postado

queria saber sobre a chamado para a interrupção para o timer 0,

ex: timer=1s

precisaria de fazer uma chamada para realizar 5s, ou seja 5 vezes no timer, como eu faço para sair do programa e para la realizar os 5 segundos e voltar para o prog?

OBRIGADO

Postado

teria q ter um contador ,e testar se o bit sinalizador do timer foi a 1 e se o contador é =5

if bit sinalizador==1

if contandor ==5

faça isso

senao volta testar.

nao esqueça de zerar o bit sinalizador.

Postado

jorge valeu mas aqui, tenho um programa de 1 s com fosc=4Mhz e prescale=1:32, olha como pode ser feito... ↓

#pragma config code ISR=0x08

#pragma config interrupt ISR

void ISR (void)

{

intconbit.tmr0IF=0;

tmr0H= 0x85

tmr0L= 0xEE

}

Pragma code

void main()

{

adcon=0x0F;

TRISAbits.TRISA0=0;

tmr0h=0x85;

tmr0L=0xEE;

t0conbits.Tmron=1;

t0conbits.t0ps2=1;

t0conbits.t0ps1=0;

t0conbits.t0ps0=0;

intconbits.GIE=1;

Intconbits.Tmr0IE=1;

WHile(1)

}

E a primeira vez q eu uso o timer e to com algumas duvidas, eu nao sei como chama essa interrupção,onde posso colocar o contador , se você puder me ajudar eu vou agradecer demais cara , VALEU!

Postado

tenta assim:

#int_TIMER1              //Interrupção do Timer1
void temp1s(void) //Funcão. O que deverá ser feiro a cada interrupão.
{
contador++;
if (contador ==5){
acende led
contador=0
}
set_timer1 (3036); //Preload do Timer1
}

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...