SlideShare a Scribd company logo
1 of 32
Download to read offline
ORGANIZAÇÃO DE COMPUTADORES
Interrupts and The Timer
ORGANIZAÇÃO DE COMPUTADORES
Este capítulo irá apresentar
o uso de interrupções no
ARM ® Cortex-M4 ® e o
módulo timer. O laboratório
irá utilizar o timer para
gerar interrupções.
Introdução
ORGANIZAÇÃO DE COMPUTADORES
A API Timer fornece um conjunto de
funções de utilização do módulo timer.
As funções são fornecidas para:
• Configurar e controlar o timer;
• Modificar os valores do
temporizador / contador;
• Gerenciar a manipulação de
interrupções.
Introdução
ORGANIZAÇÃO DE COMPUTADORES
• Lida com exceções e interrupções;
• Tem 8 níveis de prioridade programáveis​​ (agrupamento
prioridade)
• 7 exceções e 65 tipos de Interrupções;
• Salva e restaura o estado automático;
• Faz a leitura automática da entrada da tabela de vetor;
• Interrupções Pre-emptive/Nested
• Tail-Chaining;
• Determinista: sempre 12 ciclos ou 6 com tail-chaining.
Cortex M4 - NVIC
ORGANIZAÇÃO DE COMPUTADORES
Interrupt Latency – Tail Chaining
ORGANIZAÇÃO DE COMPUTADORES
Interrupt Latency – Pre - Emption
ORGANIZAÇÃO DE COMPUTADORES
Interrupt Latency - Late Arrival
ORGANIZAÇÃO DE COMPUTADORES
Cortex-M4 Manipulação de Interrupção e
Vetores
Manipulação de interrupção é automático. Não há sobrecarga de instruções.
• Entrada
• Insere automaticamente na pilha os registros R0-R3, R12, LR,
PSR, e PC;
• Em paralelo, ISR são pré-buscadas no “instruction bus”. ISR
pronto para começar a execução tão logo a pilha esteja completa;
• Saída
• Estado do processador é automaticamente restaurado a partir da
pilha;
• Em paralelo, instruções de interrupções são pré-buscadas para
serem executadas após a conclusão do POP na pilha;
ORGANIZAÇÃO DE COMPUTADORES
Tipos de Exceções do Cortex-M4 ®
Tabela 1: Tabela com os tipos de exceção do cortex-M4.
ORGANIZAÇÃO DE COMPUTADORES
Cortex-M4 ® Vector Table
• Depois de reset, a tabela de vetores
está localizada na endereço 0;
• Cada entrada contém o endereço do
função a ser executada;
• O valor no endereço 0x00 é usado
como endereço inicial da Main Stack
Pointer (MSP);
• A tabela de vetores pode ser
realocada para escrita com a instrução
VTABLE register;
• Abra o startup_ccs.c para ver a tabela
de codificação dos vetores.
ORGANIZAÇÃO DE COMPUTADORES
Módulo Timer Geral
• Seis timers de uso geral de 16/32-bit e seis de 32/64-bit;
• Doze pinos para capturar, comparar e PWN de 16/32-bit e doze de
32/64-bit;
• Possui os módulos de Timer:
• One-shot
• Contínuo
• Contagem de borda de entrada ou de captura de tempo com 16
bits
• Geração de PWM
• Relógio de tempo real
• Contagem Up ou Down
• PWM simples
• Suporte para sincronização de timer, daisy-chains, e parando durante
a depuração
• Pode desencadear amostras ADC ou transferências DMA
ORGANIZAÇÃO DE COMPUTADORES
O módulo timer fornece dois
temporizadores/contadores:
• De Meia Largura:
• Podem ser configurados para operar
independentemente como timers ou
contadores de eventos;
• De Largura Total:
• Pode funcionar como um cronômetro
ou no modo Tempo real Clock (RTC).
Módulo Timer Geral
ORGANIZAÇÃO DE COMPUTADORES
Configuração para esta API
Meia Largura Largura Total
16 bits 32 bits
32 bits 64 bits
TimerA TimerB TimerA
ORGANIZAÇÃO DE COMPUTADORES
Um timer pode ser configurado para funcionar como um
Timer One-shot:
• Se configurado no modo one-shot, o cronômetro para
de contar quando ele chega a zero quando a contagem
regressiva ou o valor da carga quando a contagem para
cima.
Timer One-shot
ORGANIZAÇÃO DE COMPUTADORES
Ou pode ser configurado para funcionar como um Timer
Contínuo:
• Se configurado em contínuo modo, o temporizador
conta a zero (contagem regressiva), ou o valor da
carga, então recarrega e continua a contagem.
Timer Contínuo
ORGANIZAÇÃO DE COMPUTADORES
Objetivo
Neste laboratório vamos configurar o timer para gerar
interrupções e, em seguida, escrever o código que responde
a interrupção, piscando o LED. Também vamos experimentar
gerar uma exceção, por tentar configurar um periférico antes
de ter sido ativado.
ORGANIZAÇÃO DE COMPUTADORES
Análise do Código
ORGANIZAÇÃO DE COMPUTADORES
ORGANIZAÇÃO DE COMPUTADORES
Procedimento
1 - Importe o Projeto Lab4.
ORGANIZAÇÃO DE COMPUTADORES
Arquivos de Cabeçalho
2. Incluir os arquivos de cabeçalho necessários para acessar as APIs
StellarisWare:
# include "inc / hw_ints.h"
# include "inc / hw_memmap.h"
# include "inc / hw_types.h"
# include "driverlib / sysctl.h"
# include "driverlib / interrupt.h"
# include "driverlib / gpio.h"
# include "driverlib / timer.h“
ORGANIZAÇÃO DE COMPUTADORES
Arquivos de Cabeçalho
• hw_ints.h: Macros que definem a atribuição de interrupção em
dispositivos Stellaris (NVIC);
• hw_memmap.h: Macros que definem o mapa de memória do dispositivo
Stellaris. Isto inclui definir as regiões periféricas da base de endereços,
por exemplo, GPIO_PORTF_BASE;
• hw_types.h: Define os tipos comuns e as macros, como tBoolean e
HWREG;
• sysctl.h: Definição e macros para o Sistema de Controle de API do
driverLib. Isto inclui as funções da API, como SysCtlClockSet e
SysCtlClockGet;
• interrupt.h: Definição e macros para NVIC Controller (Interrupção) API do
DriverLib. Isso inclui as funções da API, como IntEnable e IntPrioritySet.
• gpio.h: Definição e macros para GPIO API do driverLib. Isso inclui as
funções da API tais como GPIOPinTypePWM e GPIOPinWrite;
• timer.h: Definição e macros para API do timer de driverLib. Isso inclui as
funções da API tais como TimerConfigure e TimerLoadSet.
ORGANIZAÇÃO DE COMPUTADORES
Função main ()
3. Calcular o “timer delays” utilizando a variável Period.
int main (void)
{
unsigned long ulPeriod;
}
ORGANIZAÇÃO DE COMPUTADORES
Configuração do Relógio
4. Configure o relógio do sistema para ser executado em 40MHz com a seguinte
chamada:
SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16M
HZ | SYSCTL_OSC_MAIN);
GPIO Configuração
5. Ative o periférico GPIO e defina os pinos conectados para os LEDs como
saídas.
SysCtlPeripheralEnable (SYSCTL_PERIPH_GPIOF);
GPIOPinTypeGPIOOutput (GPIO_PORTF_BASE, GPIO_PIN_1 | GPIO_PIN_2
|GPIO_PIN_3);
ORGANIZAÇÃO DE COMPUTADORES
Configuração do Timer
6. Antes de chamar qualquer função específica do periférico driverLib é
necessário ativar o clock. Se isso não for feito irá resultar em uma ISR
Fault (falha de endereço). Adicione as seguintes linhas ao código:
• A segunda declaração configura o timer 0 como um timer de 32 bits.
SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);
TimerConfigure (TIMER0_BASE, TIMER_CFG_32_BIT_PER);
ORGANIZAÇÃO DE COMPUTADORES
Cálculo do Delay
7. Para alternar um GPIO em 10Hz e um ciclo de trabalho de 50%, é
preciso gerar uma interrupção em ½ do período desejado. Em primeiro
lugar, calcular o número de ciclos de relógio necessários para um período
de 10Hz, chamando SysCtlClockGet () e dividindo-o por sua frequência
desejada, em seguida divida por dois, já que queremos uma contagem
que é ½ para a interrupção. Adicione as seguintes linhas ao código:
ulPeriod = (SysCtlClockGet () / 10) / 2;
TimerLoadSet (TIMER0_BASE, TIMER_A, ulPeriod -1);
ORGANIZAÇÃO DE COMPUTADORES
Ativar a Interrupção
8. Ative a interrupção não só no módulo Timer, mas também
no NVIC (The Nested Vector Interrupt Controller, controlador
de interrupção do Cortex M4).
IntEnable (INT_TIMER0A);
TimerIntEnable (TIMER0_BASE, TIMER_TIMA_TIMEOUT);
IntMasterEnable ();
ORGANIZAÇÃO DE COMPUTADORES
Ativar Timer
9. Ative o timer. Isto irá iniciar o timer e as interrupções começará acionando os
tempos de espera. Digite a seguinte linha de código após as anteriores:
TimerEnable (TIMER0_BASE, TIMER_A);
Loop Principal
10. O loop principal do código é simplesmente um tempo vazio (1) uma vez que a
alternância do GPIO vai acontecer na rotina de interrupção. Adicione as seguintes
linhas de código após as anteriores:
while (1)
{
}
ORGANIZAÇÃO DE COMPUTADORES
Timer de Interrupção Handler
11. Adicione um manipulador de interrupção no timer. Antes é necessário limpar a fonte de
manipulação. Adicione as seguintes linhas de código após o encerramento definitivo da
função main():
main (...)
Timer0IntHandler vazio (void)
{
/ / Limpar a interrupção do timer
TimerIntClear (TIMER0_BASE, TIMER_TIMA_TIMEOUT);
/ / Ler o estado atual do pino GPIO e
/ / Escrever de volta o estado oposto
if (GPIOPinRead (GPIO_PORTF_BASE, GPIO_PIN_2))
{
GPIOPinWrite (GPIO_PORTF_BASE, GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3, 0);
}
outro
{
GPIOPinWrite (GPIO_PORTF_BASE, GPIO_PIN_2, 4);
}
}
ORGANIZAÇÃO DE COMPUTADORES
12. Salve o código.
ORGANIZAÇÃO DE COMPUTADORES
Código Startup
13. Abra o arquivo startup_ccs.c. Este arquivo contém a tabela de vetores
discutidos durante a apresentação. Observe a linha comentada com “Timer 0
subtimer A”.
• Quando a interrupção ocorre o NVIC irá procurar o endereço da ISR neste local.
É neste local que o próximo código será executado.
• Você precisa encontrar cuidadosamente a posição apropriada do vetor e
substituir IntDefaultHandler com o nome de seu manipulador de interrupção
ORGANIZAÇÃO DE COMPUTADORES
Você também vai precisar para declarar esta função no topo deste
arquivo como externo. Isto é necessário para o compilador resolver o
símbolo. Encontre a linha que contém:
extern _c_int00 vazio (void);
e adicione:
extern Timer0IntHandler vazio (void);
logo abaixo dela, como mostrado abaixo:
Clique no botão salvar e execute o código.
ORGANIZAÇÃO DE COMPUTADORES
Exceções
15. Encontre a linha de código que ativa o periférico do GPIO
e comente, como mostrado na figura abaixo::
Agora o código vai acessar o periférico sem ativar o relógio.

More Related Content

What's hot

Programação básica de microcontroladores
Programação básica de microcontroladoresProgramação básica de microcontroladores
Programação básica de microcontroladoresDanilo Morais Pagano
 
Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051Thiago Oliveira
 
Microcontroladores pic
Microcontroladores picMicrocontroladores pic
Microcontroladores picCesar Prim
 
8085 Introducao
8085 Introducao8085 Introducao
8085 Introducaoedgluc2001
 
Resumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroCResumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroCFabio Souza
 
Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8RogerMasters
 
Aula 3 - Assembly - 8051
Aula 3 - Assembly - 8051Aula 3 - Assembly - 8051
Aula 3 - Assembly - 8051Thiago Oliveira
 
Microcontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas DigitaisMicrocontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas DigitaisFabio Souza
 
Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016
Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016
Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016André Curvello
 
2ª SATEC - SENAI - Arduino + CLP + Maquina de estados
2ª SATEC - SENAI - Arduino + CLP + Maquina de estados2ª SATEC - SENAI - Arduino + CLP + Maquina de estados
2ª SATEC - SENAI - Arduino + CLP + Maquina de estadosHamilton Sena
 

What's hot (20)

Programação básica de microcontroladores
Programação básica de microcontroladoresProgramação básica de microcontroladores
Programação básica de microcontroladores
 
Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051
 
Microcontroladores pic
Microcontroladores picMicrocontroladores pic
Microcontroladores pic
 
8085 Introducao
8085 Introducao8085 Introducao
8085 Introducao
 
Pic18xx
Pic18xxPic18xx
Pic18xx
 
Pic aula1
Pic   aula1Pic   aula1
Pic aula1
 
Resumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroCResumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroC
 
Ac16 conjunto de instruções v2
Ac16   conjunto de instruções v2Ac16   conjunto de instruções v2
Ac16 conjunto de instruções v2
 
Resumo assembly x86 16 bits
Resumo assembly x86 16 bitsResumo assembly x86 16 bits
Resumo assembly x86 16 bits
 
Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8
 
8085 3
8085 38085 3
8085 3
 
8085 2
8085 28085 2
8085 2
 
Aula 3 - Assembly - 8051
Aula 3 - Assembly - 8051Aula 3 - Assembly - 8051
Aula 3 - Assembly - 8051
 
HC11
HC11HC11
HC11
 
Programando microcontroladores pic março
Programando microcontroladores pic marçoProgramando microcontroladores pic março
Programando microcontroladores pic março
 
Seminario pic
Seminario picSeminario pic
Seminario pic
 
Microcontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas DigitaisMicrocontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas Digitais
 
Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016
Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016
Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016
 
Curso clp siemens
Curso clp siemensCurso clp siemens
Curso clp siemens
 
2ª SATEC - SENAI - Arduino + CLP + Maquina de estados
2ª SATEC - SENAI - Arduino + CLP + Maquina de estados2ª SATEC - SENAI - Arduino + CLP + Maquina de estados
2ª SATEC - SENAI - Arduino + CLP + Maquina de estados
 

Similar to Interrupts and the timer

Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Cláudio Alves
 
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdfmicrocontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdftccunip
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Apostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFApostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFengelrfs
 
Desenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcadosDesenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcadosRodrigo Almeida
 
Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Flávia Martins
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIM...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  TPM - TIM...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  TPM - TIM...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIM...Fabio Souza
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...Marcelo Barros de Almeida
 
AA Apresentacao_TIMER0_PIC16F877A_2016.pdf
AA Apresentacao_TIMER0_PIC16F877A_2016.pdfAA Apresentacao_TIMER0_PIC16F877A_2016.pdf
AA Apresentacao_TIMER0_PIC16F877A_2016.pdfSilvanildoManoeldaSi
 
Clp completa
Clp completaClp completa
Clp completapanelada
 
1 história e características dos microcontroladores pic
1 história e características dos microcontroladores pic1 história e características dos microcontroladores pic
1 história e características dos microcontroladores picAnderson Inácio Morais
 
Kernel com requisitos temporais
Kernel com requisitos temporaisKernel com requisitos temporais
Kernel com requisitos temporaisRodrigo Almeida
 
EL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfEL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfssuser56423c1
 
Prática da disciplina de laboratório de conversão de energia
Prática da disciplina de laboratório de conversão de energiaPrática da disciplina de laboratório de conversão de energia
Prática da disciplina de laboratório de conversão de energiaHeitor Galvão
 

Similar to Interrupts and the timer (20)

Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
 
ARM
ARMARM
ARM
 
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdfmicrocontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
 
Zilog
ZilogZilog
Zilog
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Apostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFApostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDF
 
Desenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcadosDesenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcados
 
Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIM...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  TPM - TIM...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  TPM - TIM...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIM...
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
 
Introducao clp
Introducao clpIntroducao clp
Introducao clp
 
Introducao clp
Introducao clpIntroducao clp
Introducao clp
 
AA Apresentacao_TIMER0_PIC16F877A_2016.pdf
AA Apresentacao_TIMER0_PIC16F877A_2016.pdfAA Apresentacao_TIMER0_PIC16F877A_2016.pdf
AA Apresentacao_TIMER0_PIC16F877A_2016.pdf
 
Clp completa
Clp completaClp completa
Clp completa
 
1 história e características dos microcontroladores pic
1 história e características dos microcontroladores pic1 história e características dos microcontroladores pic
1 história e características dos microcontroladores pic
 
Kernel com requisitos temporais
Kernel com requisitos temporaisKernel com requisitos temporais
Kernel com requisitos temporais
 
EL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfEL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdf
 
Arquitetura 8 3
Arquitetura 8 3Arquitetura 8 3
Arquitetura 8 3
 
Arquitetura 8 3
Arquitetura 8 3Arquitetura 8 3
Arquitetura 8 3
 
Prática da disciplina de laboratório de conversão de energia
Prática da disciplina de laboratório de conversão de energiaPrática da disciplina de laboratório de conversão de energia
Prática da disciplina de laboratório de conversão de energia
 

More from Mayara Mônica

Pronouns and Verb To Be
Pronouns and Verb To BePronouns and Verb To Be
Pronouns and Verb To BeMayara Mônica
 
Aprendendo o Alfabeto em Inglês
Aprendendo o Alfabeto em InglêsAprendendo o Alfabeto em Inglês
Aprendendo o Alfabeto em InglêsMayara Mônica
 
Saúde e Nutrição - Fibras Alimentares
Saúde e Nutrição - Fibras AlimentaresSaúde e Nutrição - Fibras Alimentares
Saúde e Nutrição - Fibras AlimentaresMayara Mônica
 
Biofísica do Sistema Respiratório
Biofísica do Sistema RespiratórioBiofísica do Sistema Respiratório
Biofísica do Sistema RespiratórioMayara Mônica
 
Órgãos em Microchips
Órgãos em MicrochipsÓrgãos em Microchips
Órgãos em MicrochipsMayara Mônica
 
Escolas da Psicologia e Bases Biológicas do Comportamento
Escolas da Psicologia e Bases Biológicas do ComportamentoEscolas da Psicologia e Bases Biológicas do Comportamento
Escolas da Psicologia e Bases Biológicas do ComportamentoMayara Mônica
 
Bioquímica Articular, Articulações e Pele
Bioquímica Articular, Articulações e PeleBioquímica Articular, Articulações e Pele
Bioquímica Articular, Articulações e PeleMayara Mônica
 
Cartilha Educativa sobre Bioética
Cartilha Educativa sobre BioéticaCartilha Educativa sobre Bioética
Cartilha Educativa sobre BioéticaMayara Mônica
 
Estudo Sobre o Músculo Liso
Estudo Sobre o Músculo LisoEstudo Sobre o Músculo Liso
Estudo Sobre o Músculo LisoMayara Mônica
 
LZW - Compressão e Descompressão
LZW - Compressão e Descompressão LZW - Compressão e Descompressão
LZW - Compressão e Descompressão Mayara Mônica
 
Questionário Sobre Teste de Software
Questionário Sobre Teste de SoftwareQuestionário Sobre Teste de Software
Questionário Sobre Teste de SoftwareMayara Mônica
 
Questions About Software Testing
Questions About Software TestingQuestions About Software Testing
Questions About Software TestingMayara Mônica
 
Modelo de Interface para um Prontuário Eletrônico
Modelo de Interface para um Prontuário EletrônicoModelo de Interface para um Prontuário Eletrônico
Modelo de Interface para um Prontuário EletrônicoMayara Mônica
 

More from Mayara Mônica (20)

Pronouns and Verb To Be
Pronouns and Verb To BePronouns and Verb To Be
Pronouns and Verb To Be
 
Aprendendo o Alfabeto em Inglês
Aprendendo o Alfabeto em InglêsAprendendo o Alfabeto em Inglês
Aprendendo o Alfabeto em Inglês
 
Saúde e Nutrição - Fibras Alimentares
Saúde e Nutrição - Fibras AlimentaresSaúde e Nutrição - Fibras Alimentares
Saúde e Nutrição - Fibras Alimentares
 
Biofísica do Sistema Respiratório
Biofísica do Sistema RespiratórioBiofísica do Sistema Respiratório
Biofísica do Sistema Respiratório
 
Tecnologias na Saúde
Tecnologias na SaúdeTecnologias na Saúde
Tecnologias na Saúde
 
Órgãos em Microchips
Órgãos em MicrochipsÓrgãos em Microchips
Órgãos em Microchips
 
Escolas da Psicologia e Bases Biológicas do Comportamento
Escolas da Psicologia e Bases Biológicas do ComportamentoEscolas da Psicologia e Bases Biológicas do Comportamento
Escolas da Psicologia e Bases Biológicas do Comportamento
 
Psicologia na Saúde
Psicologia na SaúdePsicologia na Saúde
Psicologia na Saúde
 
Movimento Body Art
Movimento Body ArtMovimento Body Art
Movimento Body Art
 
Bioquímica Articular, Articulações e Pele
Bioquímica Articular, Articulações e PeleBioquímica Articular, Articulações e Pele
Bioquímica Articular, Articulações e Pele
 
Cartilha Educativa sobre Bioética
Cartilha Educativa sobre BioéticaCartilha Educativa sobre Bioética
Cartilha Educativa sobre Bioética
 
Estudo Sobre o Músculo Liso
Estudo Sobre o Músculo LisoEstudo Sobre o Músculo Liso
Estudo Sobre o Músculo Liso
 
Tipologia Textual
Tipologia TextualTipologia Textual
Tipologia Textual
 
Comando Traceroute
Comando TracerouteComando Traceroute
Comando Traceroute
 
LZW - Compressão e Descompressão
LZW - Compressão e Descompressão LZW - Compressão e Descompressão
LZW - Compressão e Descompressão
 
MaDKit
MaDKitMaDKit
MaDKit
 
UPPAAL
UPPAALUPPAAL
UPPAAL
 
Questionário Sobre Teste de Software
Questionário Sobre Teste de SoftwareQuestionário Sobre Teste de Software
Questionário Sobre Teste de Software
 
Questions About Software Testing
Questions About Software TestingQuestions About Software Testing
Questions About Software Testing
 
Modelo de Interface para um Prontuário Eletrônico
Modelo de Interface para um Prontuário EletrônicoModelo de Interface para um Prontuário Eletrônico
Modelo de Interface para um Prontuário Eletrônico
 

Recently uploaded

Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasSocorro Machado
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfHELENO FAVACHO
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfRavenaSales1
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º anoRachel Facundo
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdfmarlene54545
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxAntonioVieira539017
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2Maria Teresa Thomaz
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSOLeloIurk1
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAHELENO FAVACHO
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxTailsonSantos1
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
Antero de Quental, sua vida e sua escrita
Antero de Quental, sua vida e sua escritaAntero de Quental, sua vida e sua escrita
Antero de Quental, sua vida e sua escritaPaula Duarte
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 

Recently uploaded (20)

Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
Antero de Quental, sua vida e sua escrita
Antero de Quental, sua vida e sua escritaAntero de Quental, sua vida e sua escrita
Antero de Quental, sua vida e sua escrita
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 

Interrupts and the timer

  • 2. ORGANIZAÇÃO DE COMPUTADORES Este capítulo irá apresentar o uso de interrupções no ARM ® Cortex-M4 ® e o módulo timer. O laboratório irá utilizar o timer para gerar interrupções. Introdução
  • 3. ORGANIZAÇÃO DE COMPUTADORES A API Timer fornece um conjunto de funções de utilização do módulo timer. As funções são fornecidas para: • Configurar e controlar o timer; • Modificar os valores do temporizador / contador; • Gerenciar a manipulação de interrupções. Introdução
  • 4. ORGANIZAÇÃO DE COMPUTADORES • Lida com exceções e interrupções; • Tem 8 níveis de prioridade programáveis​​ (agrupamento prioridade) • 7 exceções e 65 tipos de Interrupções; • Salva e restaura o estado automático; • Faz a leitura automática da entrada da tabela de vetor; • Interrupções Pre-emptive/Nested • Tail-Chaining; • Determinista: sempre 12 ciclos ou 6 com tail-chaining. Cortex M4 - NVIC
  • 5. ORGANIZAÇÃO DE COMPUTADORES Interrupt Latency – Tail Chaining
  • 6. ORGANIZAÇÃO DE COMPUTADORES Interrupt Latency – Pre - Emption
  • 8. ORGANIZAÇÃO DE COMPUTADORES Cortex-M4 Manipulação de Interrupção e Vetores Manipulação de interrupção é automático. Não há sobrecarga de instruções. • Entrada • Insere automaticamente na pilha os registros R0-R3, R12, LR, PSR, e PC; • Em paralelo, ISR são pré-buscadas no “instruction bus”. ISR pronto para começar a execução tão logo a pilha esteja completa; • Saída • Estado do processador é automaticamente restaurado a partir da pilha; • Em paralelo, instruções de interrupções são pré-buscadas para serem executadas após a conclusão do POP na pilha;
  • 9. ORGANIZAÇÃO DE COMPUTADORES Tipos de Exceções do Cortex-M4 ® Tabela 1: Tabela com os tipos de exceção do cortex-M4.
  • 10. ORGANIZAÇÃO DE COMPUTADORES Cortex-M4 ® Vector Table • Depois de reset, a tabela de vetores está localizada na endereço 0; • Cada entrada contém o endereço do função a ser executada; • O valor no endereço 0x00 é usado como endereço inicial da Main Stack Pointer (MSP); • A tabela de vetores pode ser realocada para escrita com a instrução VTABLE register; • Abra o startup_ccs.c para ver a tabela de codificação dos vetores.
  • 11. ORGANIZAÇÃO DE COMPUTADORES Módulo Timer Geral • Seis timers de uso geral de 16/32-bit e seis de 32/64-bit; • Doze pinos para capturar, comparar e PWN de 16/32-bit e doze de 32/64-bit; • Possui os módulos de Timer: • One-shot • Contínuo • Contagem de borda de entrada ou de captura de tempo com 16 bits • Geração de PWM • Relógio de tempo real • Contagem Up ou Down • PWM simples • Suporte para sincronização de timer, daisy-chains, e parando durante a depuração • Pode desencadear amostras ADC ou transferências DMA
  • 12. ORGANIZAÇÃO DE COMPUTADORES O módulo timer fornece dois temporizadores/contadores: • De Meia Largura: • Podem ser configurados para operar independentemente como timers ou contadores de eventos; • De Largura Total: • Pode funcionar como um cronômetro ou no modo Tempo real Clock (RTC). Módulo Timer Geral
  • 13. ORGANIZAÇÃO DE COMPUTADORES Configuração para esta API Meia Largura Largura Total 16 bits 32 bits 32 bits 64 bits TimerA TimerB TimerA
  • 14. ORGANIZAÇÃO DE COMPUTADORES Um timer pode ser configurado para funcionar como um Timer One-shot: • Se configurado no modo one-shot, o cronômetro para de contar quando ele chega a zero quando a contagem regressiva ou o valor da carga quando a contagem para cima. Timer One-shot
  • 15. ORGANIZAÇÃO DE COMPUTADORES Ou pode ser configurado para funcionar como um Timer Contínuo: • Se configurado em contínuo modo, o temporizador conta a zero (contagem regressiva), ou o valor da carga, então recarrega e continua a contagem. Timer Contínuo
  • 16. ORGANIZAÇÃO DE COMPUTADORES Objetivo Neste laboratório vamos configurar o timer para gerar interrupções e, em seguida, escrever o código que responde a interrupção, piscando o LED. Também vamos experimentar gerar uma exceção, por tentar configurar um periférico antes de ter sido ativado.
  • 19. ORGANIZAÇÃO DE COMPUTADORES Procedimento 1 - Importe o Projeto Lab4.
  • 20. ORGANIZAÇÃO DE COMPUTADORES Arquivos de Cabeçalho 2. Incluir os arquivos de cabeçalho necessários para acessar as APIs StellarisWare: # include "inc / hw_ints.h" # include "inc / hw_memmap.h" # include "inc / hw_types.h" # include "driverlib / sysctl.h" # include "driverlib / interrupt.h" # include "driverlib / gpio.h" # include "driverlib / timer.h“
  • 21. ORGANIZAÇÃO DE COMPUTADORES Arquivos de Cabeçalho • hw_ints.h: Macros que definem a atribuição de interrupção em dispositivos Stellaris (NVIC); • hw_memmap.h: Macros que definem o mapa de memória do dispositivo Stellaris. Isto inclui definir as regiões periféricas da base de endereços, por exemplo, GPIO_PORTF_BASE; • hw_types.h: Define os tipos comuns e as macros, como tBoolean e HWREG; • sysctl.h: Definição e macros para o Sistema de Controle de API do driverLib. Isto inclui as funções da API, como SysCtlClockSet e SysCtlClockGet; • interrupt.h: Definição e macros para NVIC Controller (Interrupção) API do DriverLib. Isso inclui as funções da API, como IntEnable e IntPrioritySet. • gpio.h: Definição e macros para GPIO API do driverLib. Isso inclui as funções da API tais como GPIOPinTypePWM e GPIOPinWrite; • timer.h: Definição e macros para API do timer de driverLib. Isso inclui as funções da API tais como TimerConfigure e TimerLoadSet.
  • 22. ORGANIZAÇÃO DE COMPUTADORES Função main () 3. Calcular o “timer delays” utilizando a variável Period. int main (void) { unsigned long ulPeriod; }
  • 23. ORGANIZAÇÃO DE COMPUTADORES Configuração do Relógio 4. Configure o relógio do sistema para ser executado em 40MHz com a seguinte chamada: SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16M HZ | SYSCTL_OSC_MAIN); GPIO Configuração 5. Ative o periférico GPIO e defina os pinos conectados para os LEDs como saídas. SysCtlPeripheralEnable (SYSCTL_PERIPH_GPIOF); GPIOPinTypeGPIOOutput (GPIO_PORTF_BASE, GPIO_PIN_1 | GPIO_PIN_2 |GPIO_PIN_3);
  • 24. ORGANIZAÇÃO DE COMPUTADORES Configuração do Timer 6. Antes de chamar qualquer função específica do periférico driverLib é necessário ativar o clock. Se isso não for feito irá resultar em uma ISR Fault (falha de endereço). Adicione as seguintes linhas ao código: • A segunda declaração configura o timer 0 como um timer de 32 bits. SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0); TimerConfigure (TIMER0_BASE, TIMER_CFG_32_BIT_PER);
  • 25. ORGANIZAÇÃO DE COMPUTADORES Cálculo do Delay 7. Para alternar um GPIO em 10Hz e um ciclo de trabalho de 50%, é preciso gerar uma interrupção em ½ do período desejado. Em primeiro lugar, calcular o número de ciclos de relógio necessários para um período de 10Hz, chamando SysCtlClockGet () e dividindo-o por sua frequência desejada, em seguida divida por dois, já que queremos uma contagem que é ½ para a interrupção. Adicione as seguintes linhas ao código: ulPeriod = (SysCtlClockGet () / 10) / 2; TimerLoadSet (TIMER0_BASE, TIMER_A, ulPeriod -1);
  • 26. ORGANIZAÇÃO DE COMPUTADORES Ativar a Interrupção 8. Ative a interrupção não só no módulo Timer, mas também no NVIC (The Nested Vector Interrupt Controller, controlador de interrupção do Cortex M4). IntEnable (INT_TIMER0A); TimerIntEnable (TIMER0_BASE, TIMER_TIMA_TIMEOUT); IntMasterEnable ();
  • 27. ORGANIZAÇÃO DE COMPUTADORES Ativar Timer 9. Ative o timer. Isto irá iniciar o timer e as interrupções começará acionando os tempos de espera. Digite a seguinte linha de código após as anteriores: TimerEnable (TIMER0_BASE, TIMER_A); Loop Principal 10. O loop principal do código é simplesmente um tempo vazio (1) uma vez que a alternância do GPIO vai acontecer na rotina de interrupção. Adicione as seguintes linhas de código após as anteriores: while (1) { }
  • 28. ORGANIZAÇÃO DE COMPUTADORES Timer de Interrupção Handler 11. Adicione um manipulador de interrupção no timer. Antes é necessário limpar a fonte de manipulação. Adicione as seguintes linhas de código após o encerramento definitivo da função main(): main (...) Timer0IntHandler vazio (void) { / / Limpar a interrupção do timer TimerIntClear (TIMER0_BASE, TIMER_TIMA_TIMEOUT); / / Ler o estado atual do pino GPIO e / / Escrever de volta o estado oposto if (GPIOPinRead (GPIO_PORTF_BASE, GPIO_PIN_2)) { GPIOPinWrite (GPIO_PORTF_BASE, GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3, 0); } outro { GPIOPinWrite (GPIO_PORTF_BASE, GPIO_PIN_2, 4); } }
  • 30. ORGANIZAÇÃO DE COMPUTADORES Código Startup 13. Abra o arquivo startup_ccs.c. Este arquivo contém a tabela de vetores discutidos durante a apresentação. Observe a linha comentada com “Timer 0 subtimer A”. • Quando a interrupção ocorre o NVIC irá procurar o endereço da ISR neste local. É neste local que o próximo código será executado. • Você precisa encontrar cuidadosamente a posição apropriada do vetor e substituir IntDefaultHandler com o nome de seu manipulador de interrupção
  • 31. ORGANIZAÇÃO DE COMPUTADORES Você também vai precisar para declarar esta função no topo deste arquivo como externo. Isto é necessário para o compilador resolver o símbolo. Encontre a linha que contém: extern _c_int00 vazio (void); e adicione: extern Timer0IntHandler vazio (void); logo abaixo dela, como mostrado abaixo: Clique no botão salvar e execute o código.
  • 32. ORGANIZAÇÃO DE COMPUTADORES Exceções 15. Encontre a linha de código que ativa o periférico do GPIO e comente, como mostrado na figura abaixo:: Agora o código vai acessar o periférico sem ativar o relógio.