• Nenhum resultado encontrado

elt024-04-arquiteturaDeMicrocontroladores

N/A
N/A
Protected

Academic year: 2021

Share "elt024-04-arquiteturaDeMicrocontroladores"

Copied!
30
0
0

Texto

(1)

Ponteiros e Arquitetura de Microcontroladores

Prof.MSc.Rodrigo Maximiano Antunes de Almeida

Universidade Federal de Itajubá

(2)

Linguagem C

Operações com Bits

(3)

Linguagem C

Operações com Bits

Operação Bit set

Passo a Passo

char bit = 2;

char mascara; mascara = 1 << bit; arg = arg | mascara;

Uma linha arg = arg | (1<<bit)

(4)

Linguagem C

Operações com Bits

Operação Bit clear

Passo a Passo

char bit = 2;

char mascara; mascara = 1 << bit; arg = arg & ~mascara;

Uma linha arg = arg & ~(1<<bit)

(5)

Linguagem C

Operações com Bits

Operação Bit ip

Passo a Passo

char bit = 2;

char mascara; mascara = 1 << bit; arg = arg ^ mascara;

Uma linha arg = arg ^ (1<<bit)

(6)

Linguagem C

Operações com Bits

Operação Bit test

Passo a Passo

char bit = 2;

char mascara; mascara = 1 << bit; arg = arg & mascara;

Uma linha if (arg & (1<<bit)) { }

(7)

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

denidos 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, oat, double, . . .)

ˆ é necessário na declaração de um ponteiro, especicar para

qual tipo de variável ele irá apontar

ˆ os ponteiros são declarados com um * antes do nome da

variável

Sintaxe

(8)

Ponteiros e Referência

int *aux;

float *temp;

char *pont;

ˆ aux, temp e pont são

variáveis que armazenam endereços de memória e não valores do tipo int, oat, 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

(9)

Linguagem C

(10)

Linguagem C

Operador & e Operador *

ˆ O operador & e o operador * são utilizados quando se trabalha com ponteiros

Operador &

ˆ obtém sempre o endereço de uma variável (endereço de)

ˆ como os ponteiros também são variáveis eles também ocupam

memória

ˆ pode-se obter o endereço do ponteiro e ter ponteiros para ponteiros (múltiplos *)

Operador *

ˆ o operador * faz o contrário do operador &

ˆ dado um ponteiro, o operador * acessa o conteúdo apontado

(11)

Linguagem C

Operador & e Operador *

Exemplo 01 - Ponteiro que referencia um inteiro 1 #include<stdio.h>

2 int main(int argc, char *argv[]){ 3 int x=10;

4 int *p1 = &x; //ponteiro para um inteiro 5 6 printf("x = %d\n\n", x); 7 *p1 = 20; //ou p1[0] = 20; 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 return 0; 14 } //endMain

(12)

Arquitetura de Microcontroladores

(13)
(14)

Arquitetura de Microcontroladores

Acesso à memória

(15)

Arquitetura de Microcontroladores

Acesso à memória

ˆ Total de memória disponível depende:

ˆ Do tamanho da palavra de dados

ˆ Do tamanho do "apontador"

ˆ Total de memória embutida no chip

ˆ Total de memória anexada à placa (modo expandido)

ˆ A arquitetura Harvard possui dois barramentos

ˆ Memória

(16)

Arquitetura de Microcontroladores

Acesso à memó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

(17)

Arquitetura de Microcontroladores

Acesso à memória

ˆ Algumas posições podem ser de "tipos"diferentes

ˆ RAM

ˆ ROM

ˆ EEPROM

ˆ Algumas não funcionam como uma memória tradicional

ˆ SFR

ˆ Vetor de interrupção

ˆ Algumas nem são memórias

ˆ Portas de entrada e saída

(18)

Arquitetura de Microcontroladores

(19)

Arquitetura de Microcontroladores

Clock e tempo de instrução

(20)

Arquitetura de Microcontroladores

Clock e tempo de instrução

Multiplicação de inteiros Multiplicação de fracionários

A = 123456; B = 34567; C = A x B; //C = 4267503552 //1. Multiplicar os números // 123456 // * 34567 // 4267503552 A = 1.23456 x 10 ^ 5 B = 3.4567 x 10 ^ 4 C = A x B //C = 4.267503552 x 10 ^9

//1. Converter para o mesmo expoente // 12.3456 x 10 ^ 4

// 3.4567 x 10 ^ 5

//2. Mult. os números somar a mantissa // 12.3456 x 10 ^ 4

// x 3.4567 x 10 ^ 4 // 42.67503552 x 10 ^ 8

//3. Corrigir quantidade de casas dec. // 4.267503552 x 10 ^ 9

(21)

Arquitetura de Microcontroladores

Clock e tempo de instrução

Operação com: Quantidade Total de tarefas

1 tarefa 104 104

2 tarefas 63 126

3 tarefas 21 63

4 tarefas 12 48

(22)

Arquitetura de Microcontroladores

Esquema elétrico e circuitos importantes

Esquema elétrico e circuitos

importantes

(23)

Arquitetura de Microcontroladores

(24)

Arquitetura de Microcontroladores

Esquema elétrico e circuitos importantes

ˆ 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

(25)

Arquitetura de Microcontroladores

Multiplexação nos terminais do microcontrolador

Multiplexação nos terminais do

microcontrolador

(26)

Arquitetura de Microcontroladores

Multiplexação nos terminais do microcontrolador

ˆ Ex: o oitavo terminal do PIC18F4550.

ˆ Pode ser congurado como terminal:

ˆ de entrada ou saída referente ao primeiro bit da porta E (RE0)

ˆ de leitura analógica pertencente ao quinto conversor analógico - digital (AN5)

ˆ utilizado para enviar um clock externo de comunicação paralela (CK1SPP)

(27)

Arquitetura de Microcontroladores

Registros de conguração do microcontrolador

Registros de conguração do

microcontrolador

(28)

Arquitetura de Microcontroladores

Registros de conguração do microcontrolador

ˆ O microcontrolador é congurado através de registros especiais

ˆ Existem registros que:

ˆ alteram o funcinamento básico do microcontrolador

ˆ modicam o modo de operação de um terminal

(29)

Arquitetura de Microcontroladores

(30)

Arquitetura de Microcontroladores

Registros de conguração do microcontrolador

//config.h

#ifndef CONFIG_H #define CONFIG_H

// Pll desligado

code char at 0x300000 CONFIG1L = 0x01; // Oscilador c/ cristal externo HS code char at 0x300001 CONFIG1H = 0x0C; // Watchdog controlado por software code char at 0x300003 CONFIG2H = 0x00; // Sem programação em baixa tensão code char at 0x300006 CONFIG4L = 0x00;

Referências

Documentos relacionados

Desse modo entendemos que o desenvolvimento profissional docente, apesar de se tratar de uma mesma realidade e possuir características parecidas, é algo que transcende a

Agradece-se ainda a amável colaboração das diversas entidades contactadas – e em particular os bancos centrais de Angola, Cabo Verde, Moçambique e São Tomé e Príncipe, a Agência

fato dos bens que compõem este estoque serem indivisíveis e (c) a propriedade privada no que diz respeito às modalidades de acesso à rede, quando essas modalidades geram

No caso dos profissionais da educação, além dos fatos descritos acima, o estado de Roraima não difere da realidade do resto do Brasil, ocorrendo: intensificação do trabalho docente,

O educador administrador escolar formado nessa perspectiva tem a possibilidade de adotar uma postura gerencial pautada na ação comunicativa, mesmo que seja,

A Procuradoria-Geral de Justiça do Ministerio Publico do Estado de Minas Gerais, por meio do Centro de Estudos e Aperfeiçoamento Funcional (CEAF), no uso das prerrogativas que lhe

Visto que o Código de Defesa do Consumidor – CDC (Lei nº 8.078/1990), em seu artigo 4º, traz como objetivo “o atendimento das necessidades dos consumidores, o respeito à

• Structs são coleções de dados heterogêneos agrupados em um mesmo elemento de dados. • Ex: armazenar as coordenadas (x,y) de um