Página 1 de 2

Interrupção

MensagemEnviado: 09 Fev 2010 11:15
por gilliard
:D Salve Salve Pessoal !!!! Tranquilo ?!?!? :D

Estou desenvolvendo um novo projeto, e me surgiu um novo desafio.

No Projeto, eu iniciei uma INTERRUPÇÃO com o Timer 1.

Dai, eu queria encerrar ela em um determinado ponto do programa. qual a melhor forma ?!?!?

Qual comando poderei usar ?!?!?

Abração pessoal !!!!

MensagemEnviado: 09 Fev 2010 11:25
por cristian
vc está querendo desliga a interrupçao doi timer1???

no ccs seria disabled_interrupts(int_timer1);

nmo mikroc nao me lenbro qual o nome do flag q desliga acho q é o PIR.

MensagemEnviado: 09 Fev 2010 12:43
por gilliard
:D É que em determinada parte do programa, eu chamo uma subrotina, que executa uma Interrupção, dai quando eu saio dessa subrotina, eu gostaria que a interrupção tambem parasse.

Mas não é isso que esta acontecendo, dai quando eu preciso novamente chamar essa subrotina, dá problema no programa, pois ela já esta ligada, entendeu ?!?!?

Então eu preciso para-la, logo que sair da subrotina, dai da proxima vez que a ativar, não dará problema.

Fico no aguardo, de uma luz !!!!

MensagemEnviado: 09 Fev 2010 12:54
por fabim
tio não se usa comando...

tu coloca.
INTCON.TMR1INT = 0 ou 1;;//não é exatamente o segundo nome

Olha no datasheet no registrador. INTCON.
Vai ver que tem um bit que liga ou desliga a interrupção de timer1, timer0, e oscaraiasquatro..

Pronto..

ou seja

INTCON.F+"numero do bit" = 1 para ligar ou 0 para desligar...

Isso é para qualquer tipo de compilador... sem xurumelas;..;.

MensagemEnviado: 09 Fev 2010 14:02
por Sergio38br
Qdo for religar a interrupção pare o timer( que continua correndo, vc apenas parou o sinal de interrupção) pare o timer, recarregue e depois ligue a interrupção.

[ ]'s
Sergio

MensagemEnviado: 09 Fev 2010 14:33
por gilliard
Huumm então ficaria assim:

Ligado

Código: Selecionar todos

   T1CON = 1;
   PIR1.TMR1IF = 0;                 // Limpa TMR1IF
   PIE1  =   1;                     // Ativa Interrupção
   INTCON = 1;                      // Liga a Interrupção



Desligado:

Código: Selecionar todos

   T1CON = 0;
   PIR1.TMR1IF = 0;                 // Limpa TMR1IF
   PIE1  =   0;                     // Desativa Interrupção
   INTCON = 0;                      // Desliga a Interrupção

[/code]

MensagemEnviado: 09 Fev 2010 14:34
por Sergio38br
ok, teste..

[ ]'s
Sergio

MensagemEnviado: 09 Fev 2010 17:45
por gilliard
Então... Eu esqueci de comentar !!!!

Eu estou utilizando a interrupção, para reiniciar o microcontrolador, isso é correto ?!?!? Qual a melhor forma para isso ?!?!?

Valew pessoal !!!!

MensagemEnviado: 09 Fev 2010 19:58
por gilliard
Eu estava pesquisando, e resolvi usar o recurso Watch Dog Timer, dai eu acionaria ele, quando eu quiser reiniciar o microcontrolador, oque acham da idéia ?!?!? Estou no caminho certo ?!?!?

MensagemEnviado: 10 Fev 2010 06:45
por gilliard
Pessoal, me ajudem !!!!

MensagemEnviado: 10 Fev 2010 06:59
por fabim
ajuda, do que?
C quer reiniciar pelo interrupt ? ou vai usar o wdt ? ou quem sabe quer desligar uma interrupção ? talvez queira aprender a usar o timer ?

Decide aí, depois alguem te da atençao..

MensagemEnviado: 10 Fev 2010 08:39
por gilliard
:D OK :D

:arrow: Eu quero ao acessar uma subrotina chamada reiniciar, ela execute o Watch Dog Time, para reiniciar o sistema.

MensagemEnviado: 10 Fev 2010 09:14
por fabim
kkkkkkkkkkkkkkkkkkkkk

MensagemEnviado: 10 Fev 2010 09:47
por gilliard
Vocês vão me ajudar ?!?!? Se não quiserem, relaxa !!!!

MensagemEnviado: 10 Fev 2010 10:09
por fabim
o gilliard. desculpa cara., mais ninguem nem eu mesmo esta entendendo o que você quer.
E antes de falar que vai ligar o wdt pra poder resetar o uC. Faz assim ó. Entra no google, e pesquisa sobre o wdt, pra ver como ele funciona..

É que você começou com uma coisa, depois passou pra outra, e depois comentou outra.

Assim não dá, assim não pode!!
O HELP do mikroC, é melhor que qualquer livro, qualquer forum ou qualquer curso presencial..

PErca o seu tempo um pouquinho com ele., você vai ficar menos confuso..