Página 1 de 1

PIC18F2550 -> C18 -> AD converter ...

MensagemEnviado: 15 Set 2011 21:52
por _blackmore_
Estou desenvolvendo um projeto com microcontrolador e to passando uns perreio. Um que perdi um **** tempo foi o módulo de conversor AD. Enquanto não o coloquei em uma ordem específica ele não funcionou.
Abaixo segue a forma com que consegui transpor o "problema".

Código: Selecionar todos
// Inicia módulo conversor AD
OpenADC  (ADC_FOSC_16         //Fosc=16MHz. Tad=16/16M=1us
         &ADC_RIGHT_JUST      //Resultado justificado a direita
         &ADC_4_TAD,          //configuração do tempo automático (4*Tad=3,2us)
         ADC_INT_OFF         //Interrupção desabilitada
         &ADC_REF_VDD_VSS,   //Vref+ = Vcc e Vref- = Vss
         ADC_CH1            //Seleciona canal 0
         &ADC_2ANA);         //Habilita analógico AN0 e AN1, digital AN2 a AN15

         Delay10TCYx(5);            //Delay 50 ciclos de máquina = 2,5us


Escolha do canal no firmware

Código: Selecionar todos
      SetChanADC (ADC_CH0);       //Seleciona canal canal 0
      ConvertADC();            //Inicia conversão
         while(BusyADC());      //Aguarda fim da conversão
         resultado_0 = (ReadADC()/8);   //Armazena resultado da conversão


próximo passo é descobrir pq o módulo de comunicação serial não funciona adequadamente.

MensagemEnviado: 30 Set 2011 10:51
por Francesco
Blackmore, precisamos de um pouco mais de informação. Qual o uC você está usando? Qual a ordem que não funcionou e a que funcionou? E não funcionava como? Não convertia ou não compilava?

MensagemEnviado: 30 Set 2011 12:27
por _blackmore_
Francesco

precisamos de um pouco mais de informação

ok ...

Qual o uC você está usando?

no título do tópico, PIC18F2550 compilando com C18.

Qual a ordem que não funcionou e a que funcionou?

( Abaixo segue a forma com que consegui transpor o "problema". ) ou seja qqer outra forma diferente da postada anteriormente comigo não funcionou ... não entendo (ainda) porque.

E não funcionava como?

não funcionava no circuito ... era o mesmo que ter no pino analógico uma chave e não um pot variando a tensão entregue ao mesmo.

Não convertia ou não compilava?

compilava sem qqer problema ou algum aviso do compilador ... eu entendo que no circuito o valor era convertido pois era exibido em display 0 ou 1023 dependendo da posição do potenciômetro ... mas não existiam valores 10 .. 15 ... 255 ... 540 ... a faixa entre 0 e 1023 entendeu?

Estou utilizando como referências o livro do Alberto Noburu, fragmentos de códigos no site e fórum microchip e mais umas catada pela net afora ... ainda estou aperreado com o módulo serial ... mas agora fiz um coscô e queimei os pinos RX e TX, to perando chegar as novas cobaias e entender pq mesmo com tudo configurado e seguindo exemplos o módulo não funfa direito ... em cada novo problema com o C18 eu abro outro tópico para ficar mais organizado em referências futuras aos usuários fórum.

MensagemEnviado: 09 Nov 2011 15:50
por uilter
_blackmore_

Vc já tentou após a conversão do AD desabilitar o modulo AD e só depois disso enviar os bytes via serial?

MensagemEnviado: 09 Nov 2011 16:23
por Andre_Cruz
Blackmore,

Já usei o conversor A/D do 18F4550.
Segue um teste que fiz com o A/D.

TESTE_AD_18F4550.rar

Abraço