Página 1 de 2
Interrupção

Enviado:
09 Fev 2010 11:15
por gilliard

Salve Salve Pessoal !!!! Tranquilo ?!?!?
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 !!!!

Enviado:
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.

Enviado:
09 Fev 2010 12:43
por gilliard

É 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 !!!!

Enviado:
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;..;.

Enviado:
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

Enviado:
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]

Enviado:
09 Fev 2010 14:34
por Sergio38br
ok, teste..
[ ]'s
Sergio

Enviado:
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 !!!!

Enviado:
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 ?!?!?

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

Enviado:
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..

Enviado:
10 Fev 2010 08:39
por gilliard

OK

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

Enviado:
10 Fev 2010 09:14
por fabim
kkkkkkkkkkkkkkkkkkkkk

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

Enviado:
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..