Ponteiros e Arquitetura de Microcontroladores
Prof.MSc.Rodrigo Maximiano Antunes de Almeida
Universidade Federal de Itajub...
Linguagem C
Opera¸c˜oes com Bits
Revis˜ao
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 2 /...
Linguagem C
Opera¸c˜oes com Bits
Opera¸c˜ao Bit set
Passo a Passo
1 char bit = 2;
2 char mascara ;
3 mascara = 1 << bit ;
...
Linguagem C
Opera¸c˜oes com Bits
Opera¸c˜ao Bit clear
Passo a Passo
1 char bit = 2;
2 char mascara ;
3 mascara = 1 << bit ...
Linguagem C
Opera¸c˜oes com Bits
Opera¸c˜ao Bit flip
Passo a Passo
1 char bit = 2;
2 char mascara ;
3 mascara = 1 << bit ;
...
Linguagem C
Opera¸c˜oes com Bits
Opera¸c˜ao Bit test
Passo a Passo
1 char bit = 2;
2 char mascara ;
3 mascara = 1 << bit ;...
Ponteiros e Referˆencia
Ponteiros
s˜ao vari´aveis que guardam um endere¸co (localiza¸c˜ao) de mem´oria
os tipos de valores...
Ponteiros e Referˆencia
1 i n t ∗aux ;
2 f l o a t ∗temp ;
3 char ∗pont ;
aux, temp e pont s˜ao vari´aveis
que armazenam e...
Linguagem C
Operador & e Operador *
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 9 / 30
Linguagem C
Operador & e Operador *
O operador & e o operador * s˜ao utilizados quando se trabalha com
ponteiros
Operador ...
Linguagem C
Operador & e Operador *
Exemplo 01 - Ponteiro que referencia um inteiro
1 #include<stdio . h>
2 i n t main ( i...
Arquitetura de Microcontroladores
Arquitetura de Microcontroladores
ELT024 Ponteiros e Arquitetura de Microcontroladoresro...
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 13 / 30
Arquitetura de Microcontroladores
Acesso `a mem´oria
Acesso `a mem´oria
ELT024 Ponteiros e Arquitetura de Microcontrolador...
Arquitetura de Microcontroladores
Acesso `a mem´oria
Total de mem´oria dispon´ıvel depende:
Do tamanho da palavra de dados...
Arquitetura de Microcontroladores
Acesso `a mem´oria
Stack 1
Stack 31
Reset
Baixa prioridade
Alta prioridade
Memória EEPRO...
Arquitetura de Microcontroladores
Acesso `a mem´oria
Algumas posi¸c˜oes podem ser de ”tipos”diferentes
RAM
ROM
EEPROM
Algu...
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 18 / 30
Arquitetura de Microcontroladores
Clock e tempo de instru¸c˜ao
Clock e tempo de instru¸c˜ao
ELT024 Ponteiros e Arquitetura...
Arquitetura de Microcontroladores
Clock e tempo de instru¸c˜ao
Multiplica¸c˜ao de inteiros Multiplica¸c˜ao de fracion´ario...
Arquitetura de Microcontroladores
Clock e tempo de instru¸c˜ao
Opera¸c˜ao com: Quantidade Total de tarefas
1 tarefa 104 10...
Arquitetura de Microcontroladores
Esquema el´etrico e circuitos importantes
Esquema el´etrico e circuitos importantes
ELT0...
Arquitetura de Microcontroladores
Esquema el´etrico e circuitos importantes
ELT024 Ponteiros e Arquitetura de Microcontrol...
Arquitetura de Microcontroladores
Esquema el´etrico e circuitos importantes
Alimenta¸c˜ao
Depende do modelo
PIC18F4550, en...
Arquitetura de Microcontroladores
Multiplexa¸c˜ao nos terminais do microcontrolador
Multiplexa¸c˜ao nos terminais do
micro...
Arquitetura de Microcontroladores
Multiplexa¸c˜ao nos terminais do microcontrolador
Ex: o oitavo terminal do PIC18F4550.
P...
Arquitetura de Microcontroladores
Registros de configura¸c˜ao do microcontrolador
Registros de configura¸c˜ao do
microcontro...
Arquitetura de Microcontroladores
Registros de configura¸c˜ao do microcontrolador
O microcontrolador ´e configurado atrav´es...
Arquitetura de Microcontroladores
Esquema el´etrico e circuitos importantes
ELT024 Ponteiros e Arquitetura de Microcontrol...
Arquitetura de Microcontroladores
Registros de configura¸c˜ao do microcontrolador
1 // c o n f i g . h
2 #ifndef CONFIG_H
3...
Upcoming SlideShare
Loading in …5
×

Acesso à memória e registros

785 views
715 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
785
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
44
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Acesso à memória e registros

  1. 1. Ponteiros e Arquitetura de Microcontroladores Prof.MSc.Rodrigo Maximiano Antunes de Almeida Universidade Federal de Itajub´a rodrigomax@unifei.edu.br ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 1 / 30
  2. 2. Linguagem C Opera¸c˜oes com Bits Revis˜ao ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 2 / 30
  3. 3. Linguagem C Opera¸c˜oes com Bits Opera¸c˜ao 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 / 30
  4. 4. Linguagem C Opera¸c˜oes com Bits Opera¸c˜ao 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 / 30
  5. 5. Linguagem C Opera¸c˜oes com Bits Opera¸c˜ao 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 / 30
  6. 6. Linguagem C Opera¸c˜oes com Bits Opera¸c˜ao 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 / 30
  7. 7. Ponteiros e Referˆencia Ponteiros s˜ao vari´aveis que guardam um endere¸co (localiza¸c˜ao) de mem´oria os tipos de valores colocados nos endere¸cos de mem´oria s˜ao definidos na declara¸c˜ao de um ponteiro ´e esse tipo que indica ao compilador a quantidade de mem´oria necess´aria para armazenar os valores uma vari´avel do tipo ponteiro aponta para uma vari´avel de um determinado tipo (char, int, float, double, . . .) ´e necess´ario na declara¸c˜ao de um ponteiro, especificar para qual tipo de vari´avel ele ir´a apontar os ponteiros s˜ao declarados com um * antes do nome da vari´avel Sintaxe tipo *nomeVariavel; ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 7 / 30
  8. 8. Ponteiros e Referˆencia 1 i n t ∗aux ; 2 f l o a t ∗temp ; 3 char ∗pont ; aux, temp e pont s˜ao vari´aveis que armazenam endere¸cos de mem´oria e n˜ao valores do tipo int, float, char * ´e usado quando deseja-se acessar o valor que est´a na posi¸c˜ao de mem´oria e n˜ao ao endere¸co da mem´oria ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 8 / 30
  9. 9. Linguagem C Operador & e Operador * ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 9 / 30
  10. 10. Linguagem C Operador & e Operador * O operador & e o operador * s˜ao utilizados quando se trabalha com ponteiros Operador & obt´em sempre o endere¸co de uma vari´avel (endere¸co de) como os ponteiros tamb´em s˜ao vari´aveis eles tamb´em ocupam mem´oria pode-se obter o endere¸co do ponteiro e ter ponteiros para ponteiros (m´ultiplos *) Operador * o operador * faz o contr´ario do operador & dado um ponteiro, o operador * acessa o conte´udo apontado por ele ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 10 / 30
  11. 11. 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 = %dnn" , x ) ; 7 ∗p1 = 20; //ou p1 [ 0 ] = 20; 8 9 printf ( "p1 = %un" , p1 ) ; 10 printf ( "x = %dn" , x ) ; 11 printf ( "*p1 = %dn" , ∗p1 ) ; 12 printf ( "p1[0] = %dnn" , p1 [ 0 ] ) ; 13 return 0; 14 } // endMain ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 11 / 30
  12. 12. Arquitetura de Microcontroladores Arquitetura de Microcontroladores ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 12 / 30
  13. 13. ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 13 / 30
  14. 14. Arquitetura de Microcontroladores Acesso `a mem´oria Acesso `a mem´oria ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 14 / 30
  15. 15. Arquitetura de Microcontroladores Acesso `a mem´oria Total de mem´oria dispon´ıvel depende: Do tamanho da palavra de dados Do tamanho do ”apontador” Total de mem´oria embutida no chip Total de mem´oria anexada `a placa (modo expandido) A arquitetura Harvard possui dois barramentos Mem´oria Dados ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 15 / 30
  16. 16. Arquitetura de Microcontroladores Acesso `a mem´oria 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 Vetorde Interrupção ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 16 / 30
  17. 17. Arquitetura de Microcontroladores Acesso `a mem´oria Algumas posi¸c˜oes podem ser de ”tipos”diferentes RAM ROM EEPROM Algumas n˜ao funcionam como uma mem´oria tradicional SFR Vetor de interrup¸c˜ao Algumas nem s˜ao mem´orias Portas de entrada e sa´ıda Registros de timers ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 17 / 30
  18. 18. ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 18 / 30
  19. 19. Arquitetura de Microcontroladores Clock e tempo de instru¸c˜ao Clock e tempo de instru¸c˜ao ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 19 / 30
  20. 20. Arquitetura de Microcontroladores Clock e tempo de instru¸c˜ao Multiplica¸c˜ao de inteiros Multiplica¸c˜ao de fracion´arios 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 ← n´umeros 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. Converter para o mesmo ← expoente 7 // 12.3456 x 10 ˆ 4 8 // 3.4567 x 10 ˆ 5 9 // 2. M u l t i p l i c a r as mantissas ← somar o expoente 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 quantidade de ← casas decimais 14 // 4.267503552 x 10 ˆ 9 ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 20 / 30
  21. 21. Arquitetura de Microcontroladores Clock e tempo de instru¸c˜ao Opera¸c˜ao 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 21 / 30
  22. 22. Arquitetura de Microcontroladores Esquema el´etrico e circuitos importantes Esquema el´etrico e circuitos importantes ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 22 / 30
  23. 23. Arquitetura de Microcontroladores Esquema el´etrico e circuitos importantes ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 23 / 30
  24. 24. Arquitetura de Microcontroladores Esquema el´etrico e circuitos importantes Alimenta¸c˜ao Depende do modelo PIC18F4550, entre 2 e 5,5 volts Clock Xc Externo RC Externo RC Interno Fonte de clock externa ICSP Programa¸c˜ao na pr´opria placa Permite debug Utiliza alguns pinos do microcontrolador ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 24 / 30
  25. 25. Arquitetura de Microcontroladores Multiplexa¸c˜ao nos terminais do microcontrolador Multiplexa¸c˜ao nos terminais do microcontrolador ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 25 / 30
  26. 26. Arquitetura de Microcontroladores Multiplexa¸c˜ao 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 anal´ogica pertencente ao quinto conversor anal´ogico - digital (AN5) utilizado para enviar um clock externo de comunica¸c˜ao paralela (CK1SPP) ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 26 / 30
  27. 27. Arquitetura de Microcontroladores Registros de configura¸c˜ao do microcontrolador Registros de configura¸c˜ao do microcontrolador ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 27 / 30
  28. 28. Arquitetura de Microcontroladores Registros de configura¸c˜ao do microcontrolador O microcontrolador ´e configurado atrav´es de registros especiais Existem registros que: alteram o funcinamento b´asico do microcontrolador modificam o modo de opera¸c˜ao de um terminal alteram as caracter´ısticas dos perif´ericos dispon´ıveis ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 28 / 30
  29. 29. Arquitetura de Microcontroladores Esquema el´etrico e circuitos importantes ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 29 / 30
  30. 30. Arquitetura de Microcontroladores Registros de configura¸c˜ao do microcontrolador 1 // c o n f i g . h 2 #ifndef CONFIG_H 3 #define CONFIG_H 4 // P l l d e s l i g a d o 5 code char at 0x300000 CONFIG1L = 0x01 ; 6 // O s c i l a d o r c/ c r i s t a l ext erno HS 7 code char at 0x300001 CONFIG1H = 0x0C ; 8 // Watchdog c o n t r o l a d o por s o f t w a r e 9 code char at 0x300003 CONFIG2H = 0x00 ; 10 // Sem programa¸c˜ao em baixa tens˜ao 11 code char at 0x300006 CONFIG4L = 0x00 ; 12 #endif //CONFIG H ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 30 / 30

×