Vous êtes sur la page 1sur 37

Desenvolvimento para Microcontroladores e Delays

Alex Vidigal Bastos

Sistemas Embarcados

Sumrio
Boas prticas programao Delays Modos de Gravao / Boot Loader Registradores de funes especiais SFR. Entrada e sadas | TRIS e PORT

Reaproveitamento de Cdigo
E se eu quisesse escrever no display em outros projetos?

Posso copiar e colar o cdigo? J pensou em criar uma biblioteca?

Bibliotecas
Biblioteca um conjunto de funes correlacionadas para um determinado contexto agrupadas em um mesmo arquivo.

Por exemplo, as funes cosseno, seno, exponencial, logaritmo esto todas agrupadas em um biblioteca chamada math.h

Bibliotecas do Compilador C18

Para que servem as bibliotecas?


Dividir para conquistar; Reaproveitamento de cdigo; Agilidade no desenvolvimento de solues para projeto(Ex: p18f4550.h);

Bibliotecas do Compilador C18


Quais as possibilidades de usar as bibliotecas?

O programador pode criar suas prprias bibliotecas.h. Ou usar bibliotecas prontas de outros programadores; Ou ainda usar as bibliotecas disponibilizadas pelos fabricante do compilador.

Ex. p18cxxx.h

Como criar uma biblioteca de usurio?

Uma biblioteca de usurio composta por dosis arquivos; *.c contm as declaraes das funes
Conhecida como arquivo fonte.

*.h contm os prottipos das funes e outras informaes que podem ser alteradas para adaptar a biblioteca a um determinado hardware(#define's)

Conhecido como arquivo de cabealho;

Usando bibliotecas

Para usar uma biblioteca padro C18, declare a diretiva #include<...>:


#include <nome_da_biblioteca.h>

Para usar uma biblioteca de usurio:


Copiar os arquivos da biblioteca (.c e .h) para o diretrio do projeto; Adicionar esses arquivos .c e .h ao projeto. Declare a diretiva #include ...:

#include nome_da_biblioteca.h

Usando bibliotecas
Quais dessas bibliotecas so padres C18 e quais so criadas pelo programador?

Funes de Atraso (delay)


Na programao de Microcontroladores necessrio criar funes para contagem de tempo. Qual componente ligado ao Microcontrolador gera a base de tempo do processador? Sua frequncia conhecida?

Ciclo de Clock ou Ciclo de Instruo


Os Microcontroladores executam um ciclo (perodo) de INSTRUO a cada 4 ciclos de CLOCK.

Um ciclo de Instruo (TCY Time of Instruction Cycle) o tempo gasto que a CPU gasta para executar uma instruo.

Calculando o Ciclo de Instruo


ATENO A frequncia de CLOCK da CPU da placa do PICMinas de 40 MHz, apesar do cristal externo ser de 20MHz!

Existe um circuito interno multiplicador para alcanar os 48MHz.

Calculando o Ciclo de Instruo


Um ciclo de INSTRUO da placa do PICMinas18 dado por:

TCY 4*(1/48MHz) = 83,33*10-9 = 83,33ns FCY Fckl/4 = 48MHz/4 = 12*106 instrues por segundo FCY -12 MIPS(Instructions Per Second)

Calculando o Ciclo de Instruo


Qual o nmero N de ciclos de instruo necessrios para contar o tempo de 0,5s? N = tempo desejado / TCY N = 0,5 / 83,33ns = 6 milhes ciclos de instruo. Assim aps 6 milhes de ciclos de instruo da CPU ter passado apenas 0,5s!!!

Exemplo de como contar tempo


Para contar tempo baseando-se no ciclo de instruo (TCY) da CPU precisamos mandar a CPU executar a quantidade de instrues que equivalem ao gasto de tempo desejado. Que tal criar uma funo que faa a CPU repetir uma mesma instruo N vezes e gastar um tempo determinado?

E porque no criar uma biblioteca para aproveitar essa funo em vrios projetos?

Biblioteca delays.h
Tem as seguintes caractersticas: Base de tempo de um ciclo de instruo (TCY Time of Instruction Cycle); No Kit Picminas: 1 TCY 83,33ns. Funes Disponveis:

Biblioteca delays.h

Biblioteca delays.h
Qual o nmero mximo de ciclos de instruo para gerar uma espera ocupada atravs da biblioteca C18 delays.h?
void Delay10KTCYx(0): //atraso de 2.560.000 ciclos

Qual o tempo equivalente a esse delay? 2.560.000*83,33ns=213,33ms Se eu precisar de mais tempo... O que posso fazer? Chamar a funo vrias vezes!!!

Qual funo vou usar?


As funes da biblioteca C18 delays.h usar com base de tempo 1TCY e seus mltiplos: 10, 100, 1K e 10K. Para contar o tempo de 200ms precisamos esperar 2.400.00 TCY. 2.400.000=> mltiplos de 10.000 TCY, usar:

Qual funo vou usar?


As funes da biblioteca C18 delays.h usar com base de tempo 1TCY e seus mltiplos: 10, 100, 1K e 10K. Para contar o tempo de 200ms precisamos esperar 2.400.00 TCY. 2.400.000=> mltiplos de 10.000 TCY, usar:
Delay10KTCYx(240); //atraso de 200ms

Gravao Off-Board
Na gravao off-board, como o prprio nome diz, necessrio que o Microcontrolador seja retirado da sua PLACA DE DESENVOLVIMENTO e colocado em outro dispositivo, chamado GRAVADORA, para que um Firmware seja gravado em sua memria interna no-voltil;

Gravao de um Firmware no PIC

Gravao Off-Board

Existe outra forma de gravar?


No seria mais fcil gravar o microcontrolador sem retir-lo da sua plataforma de aplicao? Sim, mas para isso necessrio que algum faa o gerenciamento da transferncia do firmware para a memria no-voltil do Microcontrolador. Qual seria essa forma de gravar?

Gravao In-Circuit
Na gravao In-Circuit NO h necessidade de retirar o microcontrolador de sua placa de desenvolvimento, para gravar um firmware; Existem duas maneiras de fazer a gravao InCircuit, atravs: Hardware: embutir recursos na placa para funcionar como gravadora; BootLoader: inserindo um programa no Microcontrolador que controle as transferncias de firmware;

Gravao In-Circuit por Hardware

Gravao In-Circuit por Hardware

Gravao In-Circuit por Firmware

Gravao In-Circuit via BootLoader

Firmware BootLoader
Como o BOOTLOADER um firmware, ele ir ocupar um espao de memria do MC. Sendo assim, organiza-se a memria novoltil do MC para que coexistam dois firmwares: Firmware da aplicao; Firware BOOTLOADER; O BOOTLOADER o firmware que ocupa as primeiras 4096 posies de memria no voltil. Est alocada no endereo 0x000 at o endereo 0xFFF.

Memria FLASH com BootLoader

Gravador Compatveis

Gravador Compatveis

Registradores SFR
So conectados (literalmente) a internos; Comandam operaes de Hardware; circuitos

Funcionam como habilitando, desabilitando ou configurando o Hardware;

Pinos digitais como I/O


PORTAS DIGITAIS DO MC Em um MC podemos ter portas (pinos) configurveis como entradas ou sadas (I/O) digitais; Para configurar e acessar as portas, temos dois SFR importantes; TRISx e PORTx (x podemos assumir A, B, C, D ou E) TRISA e PORTA

Pinos digitais como I/O

Perguntas

Vous aimerez peut-être aussi