Página 1 de 1

Interrupção no 8051

MensagemEnviado: 04 Fev 2007 15:46
por jroberto.vieira
Olá galera.

Preciso saber a respeito das interrupções do 8051 de maneira clara...
Posso utilizar o Timer 0 junto com a Interupção 0 (externo)???? e Timer 1 junto com a Interrupção 1 (externo)????
Tenho uma certa dificuldade no entendimento do funcionamento das Interrupções, por isto preciso de uma explicação clara...

Agradeço a colaboração.


Roberto.

MensagemEnviado: 04 Fev 2007 17:45
por Iran
Vamos lá.

As interrupções são independentes, portanto pode usar até todas elas simultaneamente.
Para usar as interrupções externas vc tem de definir se elas serão disparadas na borda de descida ou no nível (bits IT0 e IT1 de registrador TCON) tem tb de habilita-lás localmente e globalmente (bits EX0 e EX1 e EA do registrador IE) e colocar as rotinas de tratamento de cada interrupção na posição correta da tabela de vetores de interrupção( 0x0003 para Externa 0 e 0x0013 para Externa 1), sempre que houver uma interrupção externa o PC aponta para os endereços acima e lá é esperado está o codigo de atendimento da interrupção, ou então um jump para um outro local onde efetivamente está a rotina de atendimento.

De uma procurada na internet que vc encontra textos que explicam bem detalhadamente tudo sobre as interrupções do 8051 e família.

Qq dúvida eu e os outro colegas do ASM51 podemos ajudar.

É isso.
Zé Iran.

MensagemEnviado: 04 Fev 2007 20:25
por Doth
Bah pessoal acertaram exatamente minha duvida.
Tipo estou usando um timer dentro da interrupção serial, teria alguma coisa pra ser feita? tipo liberar algum bit ou coisa assim?

Obrigado

//Ricardo Doth

Obrigado Iran

MensagemEnviado: 04 Fev 2007 21:46
por jroberto.vieira
Valeu Iran...

Deu pra entender....Mesmo assim vou procurar mais a repeito....

Valeu mesmo...

Aa medida em que as dúvidas forem surgindo, recorrerei à voces..


Até...


Roberto

MensagemEnviado: 05 Fev 2007 01:23
por Maurício
Doth escreveu:Bah pessoal acertaram exatamente minha duvida.
Tipo estou usando um timer dentro da interrupção serial, teria alguma coisa pra ser feita? tipo liberar algum bit ou coisa assim?

Obrigado

//Ricardo Doth


Qual máquina vc está usando ? (8051, 8052)
Qual timer vc está usando para gerar os baud-rates ?
O que vc quer fazer ? Programar a serial, ou programar os timers 0 e 2, pra gerarem interrupção ?

[]'s

RETI.

MensagemEnviado: 05 Fev 2007 09:05
por andre_luis
Só pra complementar, é uma boa prática não colocar funcoes dentro das interrupcoes, mas apenas no programa principal. Nas interrupçoes é aconselhável apenas setar flags ou ler resultados de registradores.

+++