Entrar    Registrar

uVision C51 - Delay

Software e Hardware para linha x51

Moderadores: guest2003, 51, Renie, gpenga

  • Autor
    Mensagem

uVision C51 - Delay

Mensagempor zachary » 17 Jul 2015 17:58

Boa noite pessoal!

Função de delay para uVision C51, alguém tem alguma sugestão?


Obrigado


Zac
"Nada tema, com SMITH não há problema"

(Dr. Zachary Smith)
Avatar do usuário
zachary
Nibble
 
Mensagens: 87
Registrado em: 08 Dez 2006 12:22
Localização: Porto Alegre - RS

Re: uVision C51 - Delay

Mensagempor andre_teprom » 17 Jul 2015 19:56

A constante abaixo tem de ser ajustada para cada valor de cristal:

cpp code
void Delay ( long ndelay )
{
for(long i=0;i< CALIBRAR;i++)
{
__NOP();
}
}
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_teprom
Dword
 
Mensagens: 5272
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: uVision C51 - Delay

Mensagempor zachary » 20 Jul 2015 18:18

andre_teprom escreveu:A constante abaixo tem de ser ajustada para cada valor de cristal:

cpp code
void Delay ( long ndelay )
{
for(long i=0;i< CALIBRAR;i++)
{
__NOP();
}
}



Obrigado André,

Me diga uma coisa, não tenho experiência com o Keil, não terei problemas com a otimização do compilador?
Não será necessário por alguma diretiva para para que o compilador não otimize o código?


Mais uma vez obrigado,


Zac
"Nada tema, com SMITH não há problema"

(Dr. Zachary Smith)
Avatar do usuário
zachary
Nibble
 
Mensagens: 87
Registrado em: 08 Dez 2006 12:22
Localização: Porto Alegre - RS

Re: uVision C51 - Delay

Mensagempor ze » 23 Jul 2015 14:54

delay, perda de tempo, um trocadilho idiota de um homônimo
Veja a lesma lerda da (estranha) opção do andré de um ponto de vista diferente...
Código: Selecionar todos
void delay(unsigned char dl) //int, long
{
while (dl--);//asm("nop") para microajustes se necessário
}

Há anos mexi com o keyl. Me lembro vagamente que as otimizações você controla nas opções do projeto na IDE mesmo. Não precisa diretivas
Avatar do usuário
ze
Dword
 
Mensagens: 1547
Registrado em: 05 Jun 2007 14:32

Re: uVision C51 - Delay

Mensagempor edsont » 23 Jul 2015 15:10

andre_teprom escreveu:A constante abaixo tem de ser ajustada para cada valor de cristal:

cpp code
void Delay ( long ndelay )
{
for(long i=0;i< CALIBRAR;i++)
{
__NOP();
}
}


Não estaria faltando usar o parâmetro ndelay? Ou CALIBRAR é função de ndelay?
Avatar do usuário
edsont
Byte
 
Mensagens: 422
Registrado em: 22 Mai 2007 17:19
Localização: Araraquara-SP Brasil - Terra - Sistema Solar - Via Láctea

Re: uVision C51 - Delay

Mensagempor andre_teprom » 01 Ago 2015 16:36

edsont escreveu:Não estaria faltando usar o parâmetro ndelay? Ou CALIBRAR é função de ndelay?


tá certo, corrigi só agora que voltei de viagem e vi o erro...

cpp code
void Delay ( long ndelay )
{
for(long i=0;i< ndelay ;i++)
{
for(long j=0;i< CALIBRAR;j++) __NOP();
}
}
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_teprom
Dword
 
Mensagens: 5272
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Voltar para 8051

Quem está online

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