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
-
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.
-
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
-
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.
-
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.
-
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!