Entrar    Registrar

Tratamento de Interrupção

Software e Hardware para ATMEL

Moderadores: guest2003, 51, brasilma

  • Autor
    Mensagem

Tratamento de Interrupção

Mensagempor Vicente » 01 Set 2018 18:03

Olá, estou usando esse código que incrementa uma variável quando ocorre uma interrupção de um timer. O chip é um Atmega 8L:

asm code
.org 0x006                         ;interrupção do timer1

push r16 ;salva r16 e sreg
in r16,sreg
push r16

lds r16,0x0060 ;aqui, incrementa uma variável, usando o r16
inc r16
sts 0x0060,r16

pop r16 ;recupera r16 e sreg salvos
out sreg,r16
pop r16

reti ;retorna da interrupção


Neste caso, eu preciso salvar o r16 e o sreg, incrementar a variável e, depois, recuperar r16 e sreg.
Gostaria de saber se alguém sabe uma outra forma de fazer isso, ou até mesmo se está faltando salvar algum outro registrador.
Vicente
Bit
 
Mensagens: 12
Registrado em: 24 Fev 2017 20:39

Re: Tratamento de Interrupção

Mensagempor tcpipchip » 02 Set 2018 10:59

eu sempre uso varíaveis como funcao do registrador a qual é jogado na pilha...


https://www.mikrocontroller.net/article ... Interrupts
------------------------------------------
http://www.youtube.com/tcpipchip
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 5729
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Voltar para AVR

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes

cron