Olá pessoal, estou tentando fazer um programa que capture o tempo em que uma onda quadrada fica em nivel 0, me falaram que uma das melhores maneiras seria usar o modo CAPTURE CCP1.
Tenho muita dificuldade em fazer programas pois sou iniciante.
Abaixo está o programa que estou começando a fazer, a propósito o programa abaixo fica lendo a entrada RB3 do pic para que se tenha algum pulso alto o led acenda, caso contratio fique apagado.
Neste programa babaca já tenho duvidas hehehe.
Espero que me ajudem, Abraço.
Obs.: meu msn eh leandrofloriani@hotmail.com, se algum interessado em me ajudar no msn estiver afim esta ai. Valeu pessoal.
//INCLUSÕES DE ARQUIVOS FONTE
#include <C:\Arquivos de programas\Mikroelektronika\mikroC\Uses\ceprob.c>
//****************************************************************
//DEFINIÇÕES DAS ENTRADAS
//****************************************************************
//DEFINIÇÕES DAS SAÍDAS
#define led RA7
//****************************************************************
// VARIÁVEIS GLOBAIS
//****************************************************************
void interrupt() // Início da rotina de interrupção
{
if(TMR1IF)
{
TMR1IF=0;
if(CCP1IF)
{
CCP1IF=0;
led=1;
}
else
{
led=0;
}
}
}
//****************************************************************
//ROTINA PRINCIPAL
void main() // Início do programa principal
{
TRISB = 0b00001000; // Todos os pinos do PortB como saída, exceto RB3
PORTB = 0b00000000; // PortB é carregado
TRISA = 0b01111111; // Todos os pinos do PortA como entrada, exceto RA7
PORTA = 0b00000000; // PortA é carregado
CMCON = 0x07; // Desabilita os comparadores de tensão
led=0;
//T1CON, TMR1L e TMR1H
T1CKPS1=0; // Prescaler em 1:1
T1CKPS0=0; // Prescaler em 1:1
T1OSCEN=0; // Oscilador desabilitado
T1SYNC=0; // Sistema de sincronismo ligado (modo síncrono)
TMR1CS=0; // Clock interno (Fosc/4)
TMR1ON=1; // Timer1 habilitado
//INTCON, PIE1 e PIR1
GIE=1; // Chave geral das interrupções
PEIE=1; // Chave do grupo de interrupções de periféricos
CCP1IE=1; // Chave individual da inbterrupção de CCP1
TMR1IE=1; // Chave individual da interrupção de TMR1
//CCP1CON, CCP1L e CCP1H
CCP1M3=0; // Capture ligado para borda de subida em 1:1
CCP1M2=1; // Capture ligado para borda de subida em 1:1
CCP1M1=0; // Capture ligado para borda de subida em 1:1
CCP1M0=1; // Capture ligado para borda de subida em 1:1
//****************************************************************
while(1)
{
}
} // Fim do programa principal
//TODO PROGRAMA DEVERÁ TERMINAR COM UMA LINHA EM BRANCO(ABAIXO DESTA)