Escolar Documentos
Profissional Documentos
Cultura Documentos
Mecatrônica
Sistemas Microprocessados I
Nelson Alves Ferreira Neto
Aula 06
• Tópicos
– Interrupções no MSP430
– Códigos Fonte
– Assembly para MSP430
1. Interrupções no MSP430
1. Interrupções no MSP430
1. Interrupções no MSP430
– NMI:
– Falha do oscilador:
1. Interrupções no MSP430
– Um pedido de interrupção leva seis (06) ciclos de clock para ser atendido;
– Uma vez que o código associado a interrupção é executado uma instrução de retorno
chamada RETI tem que ser utilizada. Este retorno demora cinco (05) ciclos de clock.
1. Interrupções no MSP430
• Montadores
2. Códigos Fonte
• Montadores
• Compiladores
2. Códigos Fonte
• Gravação
• Gravação
2. Códigos Fonte
• Linguagem Assembly
• Linguagem Assembly
2. Códigos Fonte
2. Códigos Fonte
• Exemplo de Fluxograma
2. Códigos Fonte
2. Códigos Fonte
• Diretivas de Pré-processamento de um Código Assembly (MSP430)
– EQU (“Equate”): Significa “Equivalente a ...” ou “Igual a...”. É utilizado para definir
constantes ou posições de memória para alocar variáveis.
– Formato: <nome_da_constante> EQU <valor_da_constante>
2. Códigos Fonte
• Diretivas de Pré-processamento de um Código Assembly (MSP430)
– HIGH: Informa ao montador que será utilizada a parte alta (os 8 bits mais
significativos - MSB) de uma word (16 bits), ou seja, do bit 15 ao bit 8.
– Ex.: mov.w high #0x1805, R15 ; Será movido 0x18 para R15.
– LOW: Informa ao montador que será utilizada a parte baixa (os 8 bits menos
significativos - LSB) de uma word (16 bits), ou seja, do bit 7 ao bit 0.
– Ex.: mov.w low #0x1805, R15 ; Será movido 0x05 para R15.
2. Códigos Fonte
• Diretivas de Pré-processamento de um Código Assembly (MSP430)
2. Códigos Fonte
• Diretivas de Pré-processamento de um Código Assembly (MSP430)
– OBSERVAÇÃO: Existem várias outras diretivas, mas nos atentamos para as mais
importantes. De qualquer forma, a existência delas é dependente do compilador e
da versão. Não é garantido que todas as diretivas de pré-processamento existam
em um compilador ou montador. Deve-se consultar o manual do fabricante.
2. Códigos Fonte
2. Códigos Fonte
• Trecho Exemplo de um Código Fonte
;*******************************************************************************
; MSP430x1xx Demo - Software Toggle P1.0
;
; Description; Toggle P1.0 by xor'ing P1.0 inside of a software loop.
; ACLK = n/a, MCLK = SMCLK = default DCO
; MSP430x1xx
;
; A. Dannenberg
; Texas Instruments, Inc
; January 2006
; Built with IAR Embedded Workbench Version: 3.40A
;*******************************************************************************
#include "msp430.h"
;-------------------------------------------------------------------------------
ORG 0FC00h ; Progam Start (1K Flash device)
;-------------------------------------------------------------------------------
RESET mov.w #0280h,SP ; Set stackpointer (128B RAM device)
StopWDT mov.w #WDTPW+WDTHOLD,&WDTCTL ; Stop watchdog timer
SetupP1 bis.b #001h,&P1DIR ; Set P1.0 to output direction
;
Mainloop xor.b #001h,&P1OUT ; Toggle P1.0
Wait mov.w #050000,R15 ; Delay to R15
L1 dec.w R15 ; Decrement R15
jnz L1 ; Delay over?
jmp Mainloop ; Again
;-------------------------------------------------------------------------------
; Interrupt Vectors
;-------------------------------------------------------------------------------
ORG 0FFFEh ; MSP430 RESET Vector
DW RESET ;
END
3. Assembly para MSP430
• Características da Linguagem Assembly para o MSP430
• Modos de Endereçamento
– 7 tipos para origem e 4 para destino
3. Assembly para MSP430
• Modos de Endereçamento
– Os modos para operando fonte são selecionados pelos
campos As e S-Reg, no próprio op-code
• Modos de Endereçamento
– Os modos para operando destino são selecionados pelos
campos Ad e D-Reg, no próprio op-code
3. Assembly para MSP430
• Instruções de Teste e Desvio (BIT, CMP, TST, BR, JMP, JEQ/JZ, JNE/
JNZ, JC/JHS, JNC/JLO, JGE, JL, JN, CALL, RET, RETI);