Como criar uma rotina de delay com maior range???

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Como criar uma rotina de delay com maior range???

Mensagempor Visitante » 15 Out 2006 16:45

Eu estou implementando uma rotina que gera um PWM por software:
#INT_TIMER1

void trata_timer1(void)
{
long int i;

set_timer1 (22678);
saida = 1;
for (i=1; i<=tempo; i++)
{
delay_us (1);
}
saida = 0;
}

sendo que eu queria variar a largura do Duty Cicle pelo menos uns 3ms, meu problema é que a rotina delay_us(variavel); não me atende pois quando eu uso uma variavel como parâmetro ela só pode variar de 1 à 256 e isso não me atende, precisava um controle maior.
Essa rotina que eu fiz com o "for" não ficou muito legal e eu queria melhorar isso, fora que eu me baseio da seguinte forma, quando tempo=400 o duty cicle do pulso é de 1ms (tempo da rotina for + delay), e eu ainda descobri esse valor usando o Proteus (osciloscópio), então nem precisão nesse valor eu tenho...
Alguem pode me sugerir um meio de fazer isso com maior precisão???
Muito obrigado pessoal!!!
Visitante
 

Mensagempor Visitante » 15 Out 2006 16:47

Esqueci de mencionar, o PIC que eu estou usando é um 18F452 rodando à 40Mhz, o prescaler está para um (65536 de Timer1) e frequencia da interrupção é um pouquinho maior que 4ms...
Acho que é só isso!!!
Visitante
 

Mensagempor Jerena » 15 Out 2006 16:49

Anonymous escreveu:Esqueci de mencionar, o PIC que eu estou usando é um 18F452 rodando à 40Mhz, o prescaler está para um (65536 de Timer1) e frequencia da interrupção é um pouquinho maior que 233Hz (4ms aprox.)...
Acho que é só isso!!!
Jerena
 

Mensagempor Visitante » 17 Out 2006 01:43

Ninguem conhece uma tecnica melhor para gerar delay???
Eu estou desconfiado pela simplicidade, mas essa rotina abaixo gera um sinal PWM certinho, estou enganado????

#INT_TIMER1

void trata_timer1()
{
long int i;

set_timer1 (10535);
saida = 1;
for (i=1; i <= tempo; i++)
{
delay_us (1);
}
saida = 0;
}
Visitante
 

Mensagempor __JEREK__ » 17 Out 2006 03:15

olá "visitante", é bom sempre lembrar que existe um tutorial sobre implementação de PWM via software na página do Renie (http://www.reniemarquet.cjb.net/eletronica.htm), lá tem esse tutorial "Tutorial implementando PWM por software".

valeu!!!
__JEREK__
Byte
 
Mensagens: 216
Registrado em: 11 Out 2006 17:53
Localização: BA


Voltar para PIC

Quem está online

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

x