Aplicação com o Timer

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Aplicação com o Timer

Mensagempor Bardelli » 24 Dez 2008 16:03

Olá Nobres Colegas...

Eu gostaria de tirar uma dúvida que está martelando minha cabeça:

Imagina que queremos fazer um led Piscar para isso usamos uma função delay_ms(500) entre o output_high e o output_low. Porém durante essa execução do delay_ms literalmente o uC não faz nada de util a nao ser esperar.

O que eu gostaria de fazer é o seguinte: Toda vez que eu quiser um delay_ms, na verdade o programa pula para uma subrotina e fica executando essa subrotina até dar o 500 ms, quando der ele volta novamente para o programa principal e quanto aparecer o delay novamente ele volta na subrotina e continua da onde parou. Alguem tem ideia de como fazer isso??. Uma outra coisa, caso na sub rotina ele termine os calculos antes dos 500 ms, entao ele deve esperar os 500 ms para voltar a rotina principal. Complicado??? alguem ai tem uma luz para dar??
Bardelli
Byte
 
Mensagens: 126
Registrado em: 20 Out 2006 12:42

Mensagempor DEJANO » 24 Dez 2008 16:50

Ola Caro colega!!!
Pelo que eu pude ver voce programa em C. Na verdade isso é muito facil de fazer quando se program em assembler. No caso esse deley_ms é um conjunto de instrucoes que vai gerar os seus 500 ms.
Isso que voce quer fazer se chama multi-tarefa. Normalmente a gente usa a interrupcao para fazer um gerador de 1 ms e entao comeca a contar a partir do momento que voce quer o delay. Quando o tempo requerido for alcançadp voce vai la e acende ou apaga seu led. durante o periodo voce pode fazer o que quizer.
Como eu nao programo em c vou ficar te devendo essa. mas voce pode usar a interrupcao mesmo em c para fazer a temporizacao.O que voce nao pode é usar esse comando delay_ms.
Até +...
DEJANO
Bit
 
Mensagens: 38
Registrado em: 05 Jun 2007 22:42

Mensagempor jorgeluiz » 25 Dez 2008 21:32

Uma soluçao e' a que foi apresentada pelo colega acima. Use interrupçao, que dure esse tempo. Outra sugestao, e' usar o PWM do pic (caso ele tenha) com um duty cicle de 50%, (50% hight, 50% low), dai so' colocar o tempo e nao se preocupar com interrupçao.
Avatar do usuário
jorgeluiz
Byte
 
Mensagens: 448
Registrado em: 26 Mar 2007 02:26


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x