cortex e AD!

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

cortex e AD!

Mensagempor Rodrigo F. » 30 Set 2010 10:50

pesoal peguei um exemplo de leitura de ad da seuinte maneira!!

Código: Selecionar todos

  LPC_PINCON->PINSEL3 &= ~(3UL<<30);                        // Reset P1.31 = GPIO
  LPC_PINCON->PINSEL3 |=  (3UL<<30);                               // Config P1.31 is AD0.5
 
 
  LPC_SC->PCONP       |=  (1UL<<12);                               // Enable power to ADC block
  LPC_ADC->ADCR        =  (1UL<< 5) |                              // select AD0.5 pin
                          (1UL<< 8) |                              // ADC clock is 18MHz/2
                          (1UL<<21);


estou tentando configurar o ad para outro pino mas não entendi o que são os UL?? (3UL<<30) ?

alguem dá uma luz?
Rodrigo F.
Nibble
 
Mensagens: 66
Registrado em: 12 Mar 2010 09:40
Localização: Macapá

Re: cortex e AD!

Mensagempor tcpipchip » 30 Set 2010 11:02

Rodrigo F. escreveu:pesoal peguei um exemplo de leitura de ad da seuinte maneira!!

Código: Selecionar todos

  LPC_PINCON->PINSEL3 &= ~(3UL<<30);                        // Reset P1.31 = GPIO
  LPC_PINCON->PINSEL3 |=  (3UL<<30);                               // Config P1.31 is AD0.5
 
 
  LPC_SC->PCONP       |=  (1UL<<12);                               // Enable power to ADC block
  LPC_ADC->ADCR        =  (1UL<< 5) |                              // select AD0.5 pin
                          (1UL<< 8) |                              // ADC clock is 18MHz/2
                          (1UL<<21);


estou tentando configurar o ad para outro pino mas não entendi o que são os UL?? (3UL<<30) ?

alguem dá uma luz?



Imagine o numero binario 11, deslocando 30 posições para esquerda em um registrador do tipo longo sem sinal....ou seja, voce está assim isolando bits que quer testar, setar, resetar....
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Mensagempor Rodrigo F. » 30 Set 2010 11:10

Certo tcpipchip, no caso o UL seria unsigned long!! não entendi pq o 11?? não seria 3?
Rodrigo F.
Nibble
 
Mensagens: 66
Registrado em: 12 Mar 2010 09:40
Localização: Macapá

Mensagempor chrdcv » 30 Set 2010 15:06

3 em binário, lembra aquela frase que o pessoal da computação usa?

"No mundo só existem 10 tipos de pessoas, as que conhecem binário e as que não conhecem"

Eu demorei um tempão para entender...
Avatar do usuário
chrdcv
Dword
 
Mensagens: 1580
Registrado em: 13 Out 2006 14:13

Mensagempor Rodrigo F. » 30 Set 2010 15:43

chrdcv escreveu:3 em binário, lembra aquela frase que o pessoal da computação usa?

"No mundo só existem 10 tipos de pessoas, as que conhecem binário e as que não conhecem"

Eu demorei um tempão para entender...


chrdcv agora eu compreendi! 3 em hexa é 00000011
Rodrigo F.
Nibble
 
Mensagens: 66
Registrado em: 12 Mar 2010 09:40
Localização: Macapá

Mensagempor Jorge_Francisco » 30 Set 2010 15:56

Rodrigo F. escreveu:
chrdcv escreveu:3 em binário, lembra aquela frase que o pessoal da computação usa?

"No mundo só existem 10 tipos de pessoas, as que conhecem binário e as que não conhecem"

Eu demorei um tempão para entender...


chrdcv agora eu compreendi! 3 em hexa é 00000011


Em PENTA também! Muito Bom!!! Bons estudos aí!!
Avatar do usuário
Jorge_Francisco
Dword
 
Mensagens: 1009
Registrado em: 12 Out 2006 09:53
Localização: Rio de Janeiro

Mensagempor Djalma Toledo Rodrigues » 30 Set 2010 16:17

Em 'trictal' 10

rsrs
DJ
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor RobL » 30 Set 2010 17:44

estou tentando configurar o ad para outro pino mas não entendi o que são os UL?? (3UL<<30) ?


Uso do UL :
Há compiladores, relacionados a versões (padronização) do C, que não tratam, por exemplo, 4000000 como unsigned long. Para garantir isso usa-se 4000000UL.
Creio que o autor quer garantir com 1UL, 3UL, etc, evitar alertas, pois poderia algum compilador não interpretar deslocamento em uma unidade com 32 bits sem sinal e sim algo com menor número de bits, ou com sinal e alertar. Naturalemente, o alerta, vai depender do lado direito do shift ser > 16, 32, etc e o padrão C usado pelo compilador.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor Rodrigo F. » 05 Out 2010 10:57

Pessoal estou lendo um sensor LM35, mas meu AD tá oscilando muito, alguém já usou LM35 com o cortex? tem algum macete para ter uma leitura estavel?
Rodrigo F.
Nibble
 
Mensagens: 66
Registrado em: 12 Mar 2010 09:40
Localização: Macapá

Mensagempor fabim » 05 Out 2010 11:18

Rodrigo F. escreveu:Pessoal estou lendo um sensor LM35, mas meu AD tá oscilando muito, alguém já usou LM35 com o cortex? tem algum macete para ter uma leitura estavel?

Quando você diz oscilando muito, é muito quanto ?

O AD do lpc é ref interna ou externa ?
O LM35 ta usando fiozinho mardito, ou cabinho coaxial ?
Você esta perto de um emissor EMI/RFI ?
etc etc etc ?
etc ?
Eim ? etc ?

Abaços. 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 Djalma Toledo Rodrigues » 05 Out 2010 12:05

Capacitores de desacoplamento

RC na entrada do ADC

Soma Leitura do ADC para obter média.

etc. etc. como diz Fabim

DJ
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor Rodrigo F. » 05 Out 2010 13:26

fabim escreveu:
Rodrigo F. escreveu:Pessoal estou lendo um sensor LM35, mas meu AD tá oscilando muito, alguém já usou LM35 com o cortex? tem algum macete para ter uma leitura estavel?

Quando você diz oscilando muito, é muito quanto ?

O AD do lpc é ref interna ou externa ?
O LM35 ta usando fiozinho mardito, ou cabinho coaxial ?
Você esta perto de um emissor EMI/RFI ?
etc etc etc ?
etc ?
Eim ? etc ?

Abaços. fabim


Dae fabim blz!

bom vamos lá!

oscila tipo un 4 graus,

exemplo tempreratura está em 29graus, ai aparece 29...32...30...29..31...34...

estou usando um kit de desenvolvimento com lpc 1768

ref interna!

to usando fiozinhuo mardito! hehehe

emissor EMI/RFI, tem uma fonte proximo alimentando e o proprio kit!

Djalma estou usando capacitores de desacoplamento e ja tentei fazer média da soma das temperaturas, oscila do mesmo geito!!

segue o codigo:


Código: Selecionar todos


  LPC_PINCON->PINSEL3 &= ~(3UL<<30);                        // Reset P1.31 = GPIO
  LPC_PINCON->PINSEL3 |=  (3UL<<30);                               // Config P1.31 is AD0.5
  LPC_SC->PCONP       |=  (1UL<<12);                               // Enable power to ADC block
  LPC_ADC->ADCR        =  (1UL<< 5) |                              // select AD0.5 pin
                          (1UL<< 8) |                              // ADC clock is 18MHz/2
                          (1UL<<21);                               // enable ADC

while(1){
 LPC_ADC->ADCR |=  (1<<24);                                    // start conversion
   while (!(LPC_ADC->ADGDR & (1<<31)));                        // Wait for Conversion end
   val= ((LPC_ADC->ADGDR >> 4) & 0xFFF);                        // read converted value
   LPC_ADC->ADCR &= ~(7<<24);                                    // stop conversion

    valor = val;
    Value[0]=(unsigned char)(valor/1000%10);
     Value[1]=(unsigned char)(valor/100%10);
     Value[2]=(unsigned char)(valor/10%10);
 }
 


armazeno o valor em um array e depois jogo este array nos display
Rodrigo F.
Nibble
 
Mensagens: 66
Registrado em: 12 Mar 2010 09:40
Localização: Macapá

Mensagempor chrdcv » 05 Out 2010 13:57

Eliminada (o minimizadas) as "causas" de hardware, penso que seria interessante a utilização de um filtro simples para a apresentação do valor final ao usuário. Há diferentes tipos e para cada casos, mas pode começar com um de média aparada que é bem simples de implementar e resolve a maioria dos casos não-críticos!

http://en.wikipedia.org/wiki/Average

chrdcv[/url]
Avatar do usuário
chrdcv
Dword
 
Mensagens: 1580
Registrado em: 13 Out 2006 14:13

Mensagempor Jozias del Rios » 04 Nov 2010 19:23

Tipicamente:

Código: Selecionar todos
value = value + ( newvalue - value ) / 16;


é um filtro IIR que faz a média que vc precisa. Troque o 16 por outra potência de 2 que desejar.
Os vencedores são aqueles que sabem o que fazer se perderem.
Os perdedores são aqueles que não sabem o que fazer se ganharem.
Avatar do usuário
Jozias del Rios
Byte
 
Mensagens: 279
Registrado em: 31 Out 2009 03:36
Localização: SJCampos-SP

Mensagempor guest2003 » 04 Nov 2010 20:11

A impedancia de saida do sensor é tão baixa...

não imagino que teria problema o "fiozinho mardito" ...

a menos que seja de 5 metros...

o que convenhamos não é um fiozinho... e sim um fiozão !!

[]'s
http://www.sethi.com.br (Institucional)
http://www.sethi3d.com.br (Impressoras 3d)
http://www.sethi.com.br/blog (Blog Impressoras 3d)
Avatar do usuário
guest2003
Word
 
Mensagens: 746
Registrado em: 13 Out 2006 11:48
Localização: Campinas - SP

Próximo

Voltar para ARM

Quem está online

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

cron

x