Escolar Documentos
Profissional Documentos
Cultura Documentos
Elt024 04 arquiteturaDeMicrocontroladores PDF
Elt024 04 arquiteturaDeMicrocontroladores PDF
Rodrigo Almeida
rodrigomax@unifei.edu.br
Revisão
1 char bit = 2 ;
2 char mascara ;
Passo a Passo 3 mascara = 1 << bit ;
4 arg = arg | mascara ;
1 char bit = 2 ;
2 char mascara ;
Passo a Passo 3 mascara = 1 << bit ;
4 arg = arg & ~ mascara ;
1 char bit = 2 ;
2 char mascara ;
Passo a Passo 3 mascara = 1 << bit ;
4 arg = arg ^ mascara ;
1 char bit = 2 ;
2 char mascara ;
Passo a Passo 3 mascara = 1 << bit ;
4 arg = arg & mascara ;
Ponteiros e Referências
Ponteiros e Referência
Ponteiros
são variáveis que guardam um endereço (localização) de memória
os tipos de valores colocados nos endereços de memória são definidos
na declaração de um ponteiro
é esse tipo que indica ao compilador a quantidade de memória
necessária para armazenar os valores
uma variável do tipo ponteiro aponta para uma variável de um
determinado tipo (char, int, float, double, . . .)
é necessário na declaração de um ponteiro, especificar para qual tipo
de variável ele irá apontar
os ponteiros são declarados com um * antes do nome da variável
Sintaxe
tipo *nomeVariavel;
Ponteiros e Referência
1 int * aux ;
aux, temp e pont são variáveis
2 float * temp ; que armazenam endereços de
3 char * pont ; memória e não valores do tipo
int, float, char
* é usado quando deseja-se
acessar o valor que está na
posição de memória e não ao
endereço da memória
Arquitetura de Microcontroladores
Acesso à memória
Acesso à memória
Acesso à memória
Stack 1 0x000
GPR1
... 0x0FF
Stack 31 0x100
GPR2
0x1FF
Interrupção
GPR3
Baixa prioridade 0x0008 0x2FF
Alta prioridade 0x0018 0x300
GPR4
0x3FF
0x0028
Memória EEPROM
0x7FFF
Não implementado ...
0X8000
Não implementado 0xF60
0X1FFFFF SFR
0xFFF
Acesso à memória
1 A = 1 . 23456 x 10 ^ 5
2 B = 3 . 4567 x 10 ^ 4
3 C = A x B
4 // C = 4 . 2 6 7 5 0 3 5 5 2 x 10 ^ 9
1 A = 123456 ;
5
2 B = 34567 ;
6 // 1 . C o n v e r t e r para o mesmo ←-
3 C = A x B;
expoente
4 // C = 4 2 6 7 5 0 3 5 5 2
7 // 12 . 3456 x 10 ^ 4
5
8 // 3 . 4567 x 10 ^ 4
6 // 1 . M u l t i p l i c a r ←-
9 // 2 . M u l t i p l i c a r as ←-
os números
m a n t i s s a s somar o e x p o e n t e
7 // 123456
10 // 12 . 3456 x 10 ^ 4
8 // ∗ 34567
11 // x 3 . 4567 x 10 ^ 4
9 // 4 2 6 7 5 0 3 5 5 2
12 // 42 . 6 7 5 0 3 5 5 2 x 10 ^ 8
13 // 3 . C o r r i g i r q u a n t i d a d e de ←-
casas d e c i m a i s
14 // 4 . 2 6 7 5 0 3 5 5 2 x 10 ^ 9
Alimentação
Depende do modelo
PIC18F4550, entre 2 e 5,5 volts
Clock
Xc Externo
RC Externo
RC Interno
Fonte de clock externa
ICSP
Programação na própria placa
Permite debug
Utiliza alguns pinos do microcontrolador
1 // config . 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 // C O N F I G H
1 // config . 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 // Pll 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 / cristal externo HS
9 code char at 0x300001 CONFIG1H = 0x0C ;
10 // W a t c h d o g 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 p r o g r a m a ç a~ o em baixa tens~ ao
13 code char at 0x300006 CONFIG4L = 0x00 ;
14
15 # endif // C O N F I G H