Buscar

elt024 04 arquiteturaDeMicrocontroladores

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Ponteiros e Arquitetura de Microcontroladores
Prof.Rodrigo Maximiano Antunes de Almeida
Universidade Federal de Itajuba´
rodrigomax@unifei.edu.br
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 1 / 32
Linguagem C
Operac¸o˜es com Bits
Revisa˜o
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 2 / 32
Linguagem C
Operac¸o˜es com Bits
Operac¸a˜o Bit set
Passo a Passo
1 char bit = 2 ;
2 char mascara ;
3 mascara = 1 << bit ;
4 arg = arg | mascara ;
Uma linha 1 arg = arg | (1<<bit )
Com define 1 #define BitSet ( arg , bit ) ( ( arg ) |= (1<<bit ) )
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 3 / 32
Linguagem C
Operac¸o˜es com Bits
Operac¸a˜o Bit clear
Passo a Passo
1 char bit = 2 ;
2 char mascara ;
3 mascara = 1 << bit ;
4 arg = arg & ˜mascara ;
Uma linha 1 arg = arg & ˜(1<<bit )
Com define 1 #define BitClr ( arg , bit ) ( ( arg ) &= ˜(1<<bit ) )
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 4 / 32
Linguagem C
Operac¸o˜es com Bits
Operac¸a˜o Bit flip
Passo a Passo
1 char bit = 2 ;
2 char mascara ;
3 mascara = 1 << bit ;
4 arg = arg ˆ mascara ;
Uma linha 1 arg = arg ˆ (1<<bit )
Com define 1 #define BitFlp ( arg , bit ) ( ( arg ) ˆ= (1<<bit ) )
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 5 / 32
Linguagem C
Operac¸o˜es com Bits
Operac¸a˜o Bit test
Passo a Passo
1 char bit = 2 ;
2 char mascara ;
3 mascara = 1 << bit ;
4 arg = arg & mascara ;
Uma linha 1 i f ( arg & (1<<bit ) ) { }
Com define 1 #define BitTst ( arg , bit ) ( ( arg ) & (1<<bit ) )
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 6 / 32
Linguagem C
Ponteiros e Refereˆncias
Ponteiros e Refereˆncias
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 7 / 32
Ponteiros e Refereˆncia
Ponteiros
sa˜o varia´veis que guardam um enderec¸o (localizac¸a˜o) de memo´ria
os tipos de valores colocados nos enderec¸os de memo´ria sa˜o definidos
na declarac¸a˜o de um ponteiro
e´ esse tipo que indica ao compilador a quantidade de memo´ria
necessa´ria para armazenar os valores
uma varia´vel do tipo ponteiro aponta para uma varia´vel de um
determinado tipo (char, int, float, double, . . .)
e´ necessa´rio na declarac¸a˜o de um ponteiro, especificar para qual tipo
de varia´vel ele ira´ apontar
os ponteiros sa˜o declarados com um * antes do nome da varia´vel
Sintaxe
tipo *nomeVariavel;
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 8 / 32
Ponteiros e Refereˆncia
1 i n t ∗aux ;
2 f l o a t ∗temp ;
3 char ∗pont ;
aux, temp e pont sa˜o varia´veis
que armazenam enderec¸os de
memo´ria e na˜o valores do tipo
int, float, char
* e´ usado quando deseja-se
acessar o valor que esta´ na
posic¸a˜o de memo´ria e na˜o ao
enderec¸o da memo´ria
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 9 / 32
Linguagem C
Operador & e Operador *
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 10 / 32
Linguagem C
Operador & e Operador *
O operador & e o operador * sa˜o utilizados quando trabalhamos com
ponteiros
Operador &
obte´m o enderec¸o da varia´vel escrita depois do operador (enderec¸o
de)
como os ponteiros tambe´m sa˜o varia´veis eles ocupam memo´ria
pode-se obter o enderec¸o do ponteiro e ter ponteiros para ponteiros
(mu´ltiplos *)
Operador *
o operador * faz o contra´rio do operador &
dado um ponteiro, o operador * acessa o conteu´do apontado por ele
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 11 / 32
Linguagem C
Operador & e Operador *
Exemplo 01 - Ponteiro que referencia um inteiro
1 #include<stdio . h>
2 i n t main ( i n t argc , char ∗argv [ ] ) {
3 i n t x=10;
4 i n t ∗p1 = &x ; // p o n t e i r o para um i n t e i r o
5
6 printf ( "x = %d\n\n" , x ) ;
7 ∗p1 = 2 0 ; // ou p1 [ 0 ] = 2 0 ;
8
9 printf ( "p1 = %u\n" , p1 ) ;
10 printf ( "x = %d\n" , x ) ;
11 printf ( "*p1 = %d\n" , ∗p1 ) ;
12 printf ( "p1[0] = %d\n\n" , p1 [ 0 ] ) ;
13 r e t u r n 0 ;
14 } // endMain
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 12 / 32
Arquitetura de Microcontroladores
Arquitetura de Microcontroladores
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 13 / 32
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 14 / 32
Arquitetura de Microcontroladores
Acesso a` memo´ria
Acesso a` memo´ria
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 15 / 32
Arquitetura de Microcontroladores
Acesso a` memo´ria
Total de memo´ria dispon´ıvel depende:
Do tamanho da palavra de dados
Do tamanho do ”apontador”
Total de memo´ria embutida no chip
Total de memo´ria anexada a` placa (modo expandido)
A arquitetura Harvard possui dois barramentos
Memo´ria
Dados
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 16 / 32
Arquitetura de Microcontroladores
Acesso a` memo´ria
Stack 1
Stack 31
Reset
Baixa prioridade
Alta prioridade
Memória EEPROM
Não implementado
...
GPR1
GPR3
GPR4
GPR2
Não implementado
SFR
0x0000
0x0008
0x0018
0x0028
0x7FFF
0X8000
0X1FFFFF
0x000
0x0FF
0x200
0x2FF
0x300
0x3FF
0x100
0x1FF
...
0xF60
0xFFF
V
et
or
 d
e
In
te
rr
up
çã
o
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 17 / 32
Arquitetura de Microcontroladores
Acesso a` memo´ria
Algumas posic¸o˜es podem ser de ”tipos”diferentes
RAM
ROM
EEPROM
Algumas na˜o funcionam como uma memo´ria tradicional
SFR
Vetor de interrupc¸a˜o
Algumas nem sa˜o memo´rias
Portas de entrada e sa´ıda
Registros de timers
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 18 / 32
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 19 / 32
Arquitetura de Microcontroladores
Clock e tempo de instruc¸a˜o
Clock e tempo de instruc¸a˜o
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 20 / 32
Arquitetura de Microcontroladores
Clock e tempo de instruc¸a˜o
Multiplicac¸a˜o de inteiros Multiplicac¸a˜o de fraciona´rios
1 A = 123456;
2 B = 34567;
3 C = A x B ;
4 //C = 4267503552
5
6 // 1 . M u l t i p l i c a r os ←↩
nu´meros
7 // 123456
8 // ∗ 34567
9 // 4267503552
1 A = 1.23456 x 10 ˆ 5
2 B = 3.4567 x 10 ˆ 4
3 C = A x B
4 //C = 4.267503552 x 10 ˆ 9
5
6 // 1 . C o n v e r t e r para o mesmo ←↩
e x p o e n t e
7 // 12.3456 x 10 ˆ 4
8 // 3 .4567 x 10 ˆ 4
9 // 2 . M u l t i p l i c a r as m a n t i s s a s ←↩
somar o e x p o e n t e
10 // 12.3456 x 10 ˆ 4
11 // x 3 .4567 x 10 ˆ 4
12 // 42.67503552 x 10 ˆ 8
13 // 3 . C o r r i g i r q u a n t i d a d e de ←↩
c a s a s d e c i m a i s
14 // 4.267503552 x 10 ˆ 9
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 21 / 32
Arquitetura de Microcontroladores
Clock e tempo de instruc¸a˜o
Operac¸a˜o com: Quantidade Total de tarefas
1 tarefa 104 104
2 tarefas 63 126
3 tarefas 21 63
4 tarefas 12 48
Total 200 341
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 22 / 32
Arquitetura de Microcontroladores
Esquema ele´trico e circuitos importantes
Esquema ele´trico e circuitos importantes
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 23 / 32
Arquitetura de Microcontroladores
Esquema ele´trico e circuitos importantes
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br24 / 32
Arquitetura de Microcontroladores
Esquema ele´trico e circuitos importantes
Alimentac¸a˜o
Depende do modelo
PIC18F4550, entre 2 e 5,5 volts
Clock
Xc Externo
RC Externo
RC Interno
Fonte de clock externa
ICSP
Programac¸a˜o na pro´pria placa
Permite debug
Utiliza alguns pinos do microcontrolador
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 25 / 32
Arquitetura de Microcontroladores
Multiplexac¸a˜o nos terminais do microcontrolador
Multiplexac¸a˜o nos terminais do
microcontrolador
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 26 / 32
Arquitetura de Microcontroladores
Multiplexac¸a˜o nos terminais do microcontrolador
Ex: o oitavo terminal do PIC18F4550.
Pode ser configurado como terminal:
de entrada ou sa´ıda referente ao primeiro bit da porta E (RE0)
de leitura analo´gica pertencente ao quinto conversor analo´gico - digital
(AN5)
utilizado para enviar um clock externo de comunicac¸a˜o paralela
(CK1SPP)
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 27 / 32
Arquitetura de Microcontroladores
Registros de configurac¸a˜o do microcontrolador
Registros de configurac¸a˜o do
microcontrolador
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 28 / 32
Arquitetura de Microcontroladores
Registros de configurac¸a˜o do microcontrolador
O microcontrolador e´ configurado atrave´s de registros especiais
Existem registros que:
alteram o funcinamento ba´sico do microcontrolador
modificam o modo de operac¸a˜o de um terminal
alteram as caracter´ısticas dos perife´ricos dispon´ıveis
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 29 / 32
Arquitetura de Microcontroladores
Esquema ele´trico e circuitos importantes
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 30 / 32
Arquitetura de Microcontroladores
Registros de configurac¸a˜o do microcontrolador
1 // c o n f i g . h
2 // u t i l i z a n d o o SDCC 3 . 3
3 #ifndef CONFIG_H
4 #define CONFIG_H
5
6 #pragma config MCLRE=ON
7 #pragma config OSC=HS
8 #pragma config WDT=OFF
9 #pragma config LVP=OFF
10 #pragma config PBADEN=OFF
11 #pragma config DEBUG=OFF
12
13 #endif //CONFIG H
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 31 / 32
Arquitetura de Microcontroladores
Registros de configurac¸a˜o do microcontrolador
1 // c o n f i g . h
2 // u t i l i z a n d o o SDCC 2 . 9
3 #ifndef CONFIG_H
4 #define CONFIG_H
5
6 // P l l d e s l i g a d o
7 code char at 0x300000 CONFIG1L = 0x01 ;
8 // O s c i l a d o r c / c r i s t a l e x t e r n o HS
9 code char at 0x300001 CONFIG1H = 0x0C ;
10 // Watchdog c o n t r o l a d o por s o f t w a r e
11 code char at 0x300003 CONFIG2H = 0x00 ;
12 // Sem programac¸ a˜o em b a i x a t e n s a˜ o
13 code char at 0x300006 CONFIG4L = 0x00 ;
14
15 #endif //CONFIG H
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 32 / 32

Outros materiais