Conversor A/D Brochante...

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Conversor A/D Brochante...

Mensagempor Bardelli » 05 Mar 2008 16:27

Olá All.

Estou fazendo uma aplicação com PIC que preciso de uma velocidade bem alta no conversor A/D. Porém quando eu fiz isso com PIC (utilizando PICC como compilador) fiquei muito decepcionado com o resultado, simplesmente a conversão A/D do pic16f877A é ridicula... Alguem pode confirmar quanto tempo o pic leva para fazer essa conversão??

abraços
Bardelli
Byte
 
Mensagens: 126
Registrado em: 20 Out 2006 12:42

Mensagempor fabim » 05 Mar 2008 16:32

Amigo o datasheet do dito cujo tem essas informações bem destacadas.

Não confunda tempo de conversão, com tempo gasto pela função do PICC. São coisas totalmente diferentes.

Quando se precisa de velocidade e ja sabe como proceder, entra o lindo e maravilhoso ASM.

ASM


ENDASM;

Sou da forma que seu compilador compreenda.

Da uma estudadinha no asm da rotina de leitura que seu compilador tem na liby, com toda certeza ela perde muito tempo.

Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor ze » 05 Mar 2008 16:49

se tu consideras 1.6uS (de hw) para conversão como uma eternidade, sugiro que use outra solução (de + custo) para seu ad. É claro, some-se os tempos de entrada e saídas da função o que para xtal de 20MHz é desprezível. Mas creio que se fizer em asm não vai ganhar muita coisa não. O picc é superotimizado. Confira na sua lib. Tente ver o asm que ele gera pra sua func.
Nosso amigo neandertal está parcialmente correto: talvez seja os tempos de suas OUTRAS funções. Não só a do ad.
abrçs
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor fabim » 05 Mar 2008 16:54

lellis escreveu:Nosso amigo neandertal está parcialmente correto


Sugiro um pouco mais de respeito e cuidado com as palavras.

Até hoje nunca me desentendi com ninguem aqui no forum em 4 anos, espero que não seja você o primeiro.
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor ze » 05 Mar 2008 17:10

amiguim nervosim por motivim picknim. tadim.

desculpe então.
nosso amigo neandertal está TOTALMENTE correto.
rs
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor proex » 05 Mar 2008 18:42

Vcs dois estão disputando pra ver quem é o mais bonito é?

O PIC pode fazer até 4.700 conversões por segundo. Claro se:

1- A impedância de saída do circuito que esta fornecendo a tensão, for bem baixa, e as rotinas de forem escritas em Assembler.

Se precisar de velocidade maior que essa, é melhor adotar um conversor externo com barramento SPI.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor xultz » 06 Mar 2008 08:50

Ô Fabim, o Lellis tava fazendo brincadeira com o teu ícone, que é lazarento de feio, se acalma aê, poxa.
98% das vezes estou certo, e não estou nem aí pros outros 3%.
Avatar do usuário
xultz
Dword
 
Mensagens: 3001
Registrado em: 13 Out 2006 18:41
Localização: Curitiba

Mensagempor ze » 06 Mar 2008 09:32

o miguim deve ter um diodo no senso de humor. só ele pode brincá cu zoto. rs

sugestão eletrocriptoliterográfica:
troque seu varistor que está no seu pino irritabilidade por um de menor tensão. Tenho um Amigo que fornece um tipo especial variável. Ele é peculiar: só consigo baixar a voltagem (maior proteção) e não posso ligar no terra e sim num fio especial que Ele fornece. Ele me disse que usa a energia do fio pra converter alguma coisa em outra ou alguém em outro e bláblábá que não entendi m**** nenhuma. Mas ele pediu pra tomar cuidado com o fornecedor concorrente.

Ei, mestre, desculpe pelo neandertal. Pode ser homoerectus? homohabilis? homosapiens? quase homo? homoss...? numdeu! rsrsrs
aloprô perdeu a razão. rsrsrsrs
Aí em orlândia tem rio? qquer apareço aí pra gente pescá!!
1 forte abraço!!
*/

#endofftopic
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor Bardelli » 06 Mar 2008 11:38

Calma Pessoal..

Para vcs terem uma idéia como estou p da vida com isso, eu estou conseguindo um tempo de conversao acima de 1 segundo no Osciloscopio


Aqui vai o código:

#include <16F877.h>
#use delay(clock=4000000)
#fuses XT,NOWDT,NOPROTECT,NOLVP


unsigned long int a,b;

#int_EXT
EXT_isr()
{
a=a+1;
}

void main()
{
unsigned int freq;
unsigned int freqp;
enable_interrupts (global);
enable_interrupts (int_ext);
setup_ADC_ports(RA0_analog);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);

a=0;
while (1)
{
a=0;
delay_ms(100);
b=a;
freq=b*3;
freqp=read_adc();
if(freq>=freqp)
output_low(pin_c1);
else
output_high(pin_c1);

}

}
Bardelli
Byte
 
Mensagens: 126
Registrado em: 20 Out 2006 12:42

Mensagempor LeandroPIC » 06 Mar 2008 12:30

ha mas é CCS ai fodi tudo mesmo!

Primeiro troque de compilador pode ser o Hitech, ai vc abilita a int do conversor AD e não use o clock interno esse e muito lento e é claro use um cristal de 20MHZ.
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19

Mensagempor Bardelli » 06 Mar 2008 14:30

Putz achei o erro...

O problema éra a Taxa de REFRESH do meu Osciloscópio.....

Diminui a escala de tempo nele, e ai sim consegui ver as coisas em tempo real...


obrigado a todos..
Bardelli
Byte
 
Mensagens: 126
Registrado em: 20 Out 2006 12:42


Voltar para PIC

Quem está online

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

x