Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
mycontato

Mikroc - Interrupção

Recommended Posts

Pessoal, estou uma grande dúvida.

Eu nunca utilizei interrupção e queria aprender, vamos lá:

Eu queria fazer o seguinte:

Estou utilizando o microcontrolador 18F452 e o mikroc como compilador.

Eu tenho uma rotina chamada teste()

E outra chamada leitura()

Eu queria que a cada 200 milisegundos fosse invertido, entre a execução do que esta dentro da rotina leitura() e do que esta dentro rotina teste().

Exemplo:

Executando teste()

200 milisegundos

Executando leitura()

200 milisegundos

Executando teste()

etc....

Tem como fazer isso, com interrupções ??? como fazer ??? Me ajudem, please.

Desde já, muito obrigado:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi seu raciocinio, voce quer que ele fique revesando a execução das rotinas a cada 200mS certo, então por interrupção da sim, voce pode usar a interrupção do TmR0 por exemplo e setar para que ele estoure a cada 200mS (claro que fazer ele estourar a 200mS é desperdicio de processamnto) oou mais rápido, voce ganha velocidade de processamento com isso,

consulte o datasheet pra entender bem como funciona uma interrupção por timer!

abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você não poderia utilizar delays comums?


while(// enquanto você quiser que esse bloco seja executado)
teste(); // função teste
delay_ms(200); // delay 200ms
leitura(); // função leitura
delay_ms(200); // este ultimo delay serve para que começe do inicio infinitamente
}

espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você não poderia utilizar delays comums?

Código:

while(// enquanto você quiser que esse bloco seja executado)

teste(); // função teste

delay_ms(200); // delay 200ms

leitura(); // função leitura

delay_ms(200); // este ultimo delay serve para que começe do inicio infinitamente

}

espero ter ajudado.

Acho que voce não entendeu amigo Angelo, o que ele quer é que de tempos em tempos o conteudo das rotinas sejam executados alrternadamente, ou seja executa um pouco da rotina 1 por 200mS depois um pouco da rotina2 por 200 mS, e assim vai.

abs.

Editado por Felipe_Eletronic
completar post

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×