sexta-feira, 12 de agosto de 2016

Atividade temporização



O exemplo clássico é "Blink", que é um led piscante.

  • Piscar um LED corresponde a mudar o estado lógico de uma saída
  • Para termos o efeito visual de piscar um LED é necessário ligar e em sequência desligar uma saída lógica.
  • Esta ação deve acontecer de forma repetitiva (loop)

  • Como o microcontrolador trabalha sob um circuito de clock elevado (48MHz), as ações efetuadas ocorrem em um tempo muito pequeno, de forma que o olho humano não percebe essas mudanças.
  • Visualmente é como se o LED estivesse permanentemente ligado.
  • Para poder ver o efeito é necessário incluir um tempo visível ao olho humano .




____________________________________________________________________

1. Criando funções de atraso


=========================================================


#define _XTAL_FREQ 48000000
#include <xc.h>

#include "C:\pic18\config_PIC18F4550.h"


void delay_ms( int i ) {
    for ( int x = 0; x < i; x++ ) {
     __delay_ms( 1 );
     }
}
=========================================================


Utilizando as o exemplo acima crie funções de atraso da biblioteca xc.h , construir funções para gerar atrasos de:



  • 100ms


____________________________________________________________________

Solução para criar uma função de atraso de 100ms
____________________________________________________________________

#define _XTAL_FREQ 48000000
#define saida LATDbits.LATD0

#include <xc.h>
#include "C:\h\Config_PIC18F4550.h"

// função que gera um atraso de múltiplos de 1ms
void delay_ms( int i ) {
    for ( int x = 0; x < i; x++ ) {
     __delay_ms( 1 );
     }
}

// função que gera um atraso de múltiplos de 100ms
void delay_100ms (int i){
    for ( int x = 0; x < i; x++ ) {
     delay_ms( 100 );
     }
}

void main(void) {
    TRISDbits.TRISD0 = 0; // Define a direção de D0 como saída
    while (1) {
        saida = 1;
        delay_100ms(1);
        saida = 0;
        delay_100ms(1);
    }
}
____________________________________________________________________

Use o exemplo acima para criar funções de múltiplos de 

  • 500ms ou 0,5s
  • 1s
Elas podem ser testadas utilizando o osciloscópio do simulador

____________________________________________________________________

2. Temporização simples

Construir um programa em linguagem C para o PIC18F4550, para fazer um led piscar em D0 com tempo de 1s ligado e 2 segundos desligado. Utilize as funções de atraso presentes na biblioteca xc.h


____________________________________________________________________


3. Indicativo de garagem







Construir um programa em linguagem C para o PIC18F4550 para acionar 2 saídas (D2 e D3) de forma que:

  • D2 ligada e D3 desligada por 1,5s
  • D2 desligada e D3 ligada por 1,5s




____________________________________________________________________




Nenhum comentário:

Postar um comentário