Página 1 de 1
duvida de configuração LPC2368

Enviado:
22 Ago 2010 01:08
por rcakto
Olá pessoal, antes de mais nada, volto a agradecer a ajuda de voces, realmente não conceguiria seguir em frente sem o apoio de voces.
bom.. dando sequencia as duvidas...
seguindo o livro "the insider's guide to the philips ARM&-Based Microcontrollers" eu configurei o PLL pelo arquivo LPC2300.s
quero trabalhar com a CPU a 60MH, ter os 48MH que a USB precisa e valor de divisao inteiro no CCO e na placa de desenvolvimento o XTAL é de 12MH
sendo assim:
MSEL=20
NSEL=1
CCLKSEL=8
USBSEL=10
está tudo correto??
e como eu faco para saber o tempo de execução de cada tarefa para poder fazer um delay??
ex.:
for (x=0;x<=1000;x++) // delay de 1s
{
}
algo assim do genero....
Obrigado por tudo.
Re: duvida de configuração LPC2368

Enviado:
22 Ago 2010 12:34
por Djalma Toledo Rodrigues
rcakto escreveu:e como eu faco para saber o tempo de execução de cada tarefa para poder fazer um delay??
ex.:
for (x=0;x<=1000;x++) // delay de 1s.
o correto seria: for (x=0;x
> =1000;x++)
DJ
Re: duvida de configuração LPC2368

Enviado:
22 Ago 2010 14:41
por Red Neck Guy
rcakto escreveu:Olá pessoal, antes de mais nada, volto a agradecer a ajuda de voces, realmente não conceguiria seguir em frente sem o apoio de voces.
bom.. dando sequencia as duvidas...
seguindo o livro "the insider's guide to the philips ARM&-Based Microcontrollers" eu configurei o PLL pelo arquivo LPC2300.s
quero trabalhar com a CPU a 60MH, ter os 48MH que a USB precisa e valor de divisao inteiro no CCO e na placa de desenvolvimento o XTAL é de 12MH
sendo assim:
MSEL=20
NSEL=1
CCLKSEL=8
USBSEL=10
está tudo correto??
e como eu faco para saber o tempo de execução de cada tarefa para poder fazer um delay??
ex.:
for (x=0;x<=1000;x++) // delay de 1s
{
}
algo assim do genero....
Obrigado por tudo.
Na dúvida faz empiracamente.
Levanta um pino no inicio da tua função e baixa ele na saída. Assim consegue medir o tempo.
Assim:
for (x=0;x > =1000;x++)
Não executa nenhuma iteração.....

Enviado:
22 Ago 2010 15:36
por rcakto
não gente.. tipo assim, o for irá durar 1 segundo, mas para isso eu preciso saber quanto tempo leva de x=1 para x=2, assim saberei colocar o valor de x>=tempo
ex.:
int delay (int tempo)
{
int x
for (x=0; x>=tempo ; x++)
{
//a duração do for será de acordo com "tempo" pois cada repetição dura 200ns
}
}
os 200ns eu estou supondo...
pelomenos era assim que eu fazia no PIC pois cada tarefa levava t=1/CCLK
e sobre a configuração do PLL?? ta certo?? no livro microcontrolador ARM7 do daniel a formula de calcular o M e D do PLL e diferente do manual do usuario... por isso a duvida...

Enviado:
23 Ago 2010 07:54
por MarcusPonce
Se você for usar um loop só para fazer delay necessita de "volatile" para garantir que o compilador não lime fora seu loop quando otimizar.
A comparação é conforme você escreveu primeiro:
volatile int conta_tempo;
for (conta_tempo = 0; conta_tempo < 100; conta_tempo++);
O tempo entre cada incremento é bem pequeno, o mais fácil é simular no Keil e ver no cronômetro do simulador quanto tempo está sendo necessário.
Veja que se você necessitar de um intervalo muito preciso e também necessita atender a interrupções durante o intervalo então o melhor é usar um timer.

Enviado:
23 Ago 2010 08:11
por rcakto
marcus vlw pela ajuda, mas de certa forma preciso de precisao sim, mas não queria usar o timer... sinceramente acho um gasto de energia visto que o meu programa não é tão grande para me preocupar mais com o tamanho dele do que com o consumo interno dele... bom, seguirei com meus estudos.. ainda não sei trabalhar com o timer mesmo...