Guia CNC Brasil - Tudo sobre CNC, Router, Laser, Torno e 3D Print

ELETRÔNICA / ELÉTRICA => Eletrônica Básica => Microcontroladores => Tópico iniciado por: rtillyj em 17 de Novembro de 2010, 16:53

Título: Detectar largura de pulso atraves do modulo CCP
Enviado por: rtillyj em 17 de Novembro de 2010, 16:53
Boa Tarde,

    Sou novo por aqui, primeira vez que escrevo no forum.

   Preciso de uma ajuda para detectar a variação de um pulso pwm utilizando um PIC 18F2455, estou utiizando o mplab e o compilador ccs, minha programação esta em linguagem C, ja estou com o programa quase pronto apenas falta esta pendencia que não havia considerado no meu fluxograma.

   Tenho um pulso PWM para controlar um sevo com periodo de 14ms, o pulso em stand by tem 1,4ms e varia de 800us e 2ms e preciso detectar essa variação, caso o pulso aumente (1,4~2ms) colocaria em nivel logico alto algum portb, caso o pulso diminua (0,8~1,4ms) colocaria em nivel alto outro portb.

   Andei fazendo algumas pesquisas e descobri que atraves do modulo ccp é capaz de detectar a largura de um pulso, porem não consegui implementar, a principio ligaria leds nos ports escolhidos para indicar se o servo viraria para esquerda ou direita, conforme variação do pulso.

   Caso alguem tenha alguma sugestão de como posso declarar a função ccp usando a biblioteca do ccs em C e alguma programação para que eu consiga detectar um pulso em uma porta do pic fico muito agradecido, se eu conseguir detectar a largura do pulso e verificar se ela é maior ou menor que 1,4ms ja terei todos meus problemas resolvidos.

  Agradeço a atenção
        Reinaldo T. Jr.
Título: Re: Detectar largura de pulso atraves do modulo CCP
Enviado por: ivan braga em 19 de Novembro de 2010, 00:20
Olá Reinaldo.

Leia o arquivo que anexei, se mesmo depois da leitura você continuar não entendendo, poste suas dúvidas.

Abraço.

Ivan Braga

Título: Re: Detectar largura de pulso atraves do modulo CCP
Enviado por: rtillyj em 19 de Novembro de 2010, 09:36
 Ivan, muito obrigado, pelo que entendi esse modo faz exatamente o que preciso.

  Agora o problema que tenho é que não consigo encontrar nas bibliotecas os comandos para ativar e configurar esse modo em liguagem C para o mplab com o compilador CCS.
Título: Re: Detectar largura de pulso atraves do modulo CCP
Enviado por: ivan braga em 19 de Novembro de 2010, 21:41
Reinaldo.

Usei um exemplo que esta incluído na própria pasta de exemplos do CCS, e usei o proteus para simular.

Baixe o anexo. E adapte para suas necessidades.

Ivan

ps. leia o help do compilador e explore as pastas do mesmo, isso também ajuda muito.
Título: Re: Detectar largura de pulso atraves do modulo CCP
Enviado por: rtillyj em 28 de Novembro de 2010, 17:01
 Ivan,

   Obrigado, não sabia que o ccs tinha esses exemplos, estava usando somente como plugin do mplab para programar em C, não tinha nem aberto o ccs... Mas de qualquer forma não consegui utilizar o ccp do modo que gostaria...

   Acabei utilizando meus conhecimentos de engenheiro e projeitei um filtro passa baixa para estrair o nivel medio do sinal pwm, assim consigo um sinal satisfatorio para usar no conversor a/d, dessa forma consegui detectar a variação do duty do pwm atraves da variação do sinal medio, com isso ja resolvi o meu problema.

   Mais uma vez obrigado pela ajuda!