Autor Tema: Arreglo para configurar canal ADC  (Leído 2229 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3216
Arreglo para configurar canal ADC
« en: 21 de Enero de 2020, 18:01:42 »
Sería esto correcto para seleccionar el canal del ADC?

los bits que lo configuran son del 2 al 6, en un PIC18F26K22

Código: C
  1. void SelectADC_Canal(unsigned char canal) {
  2.     ADCON0 = ADCON0 & 0b10000011;
  3.     ADCON0 = ADCON0 | canal << 2;
  4. }

Gracias, un saludo!!!
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Arreglo para configurar canal ADC
« Respuesta #1 en: 21 de Enero de 2020, 20:58:53 »
Mejor algo asi imagino:

Código: C
  1. bool SelectADC_Canal(unsigned char canal) {
  2.     if (ADCON0bits.GO == 1) { return ERROR;}
  3.     ADCON0 = (canal << 2) + 1;
  4.     return OK;
  5. }

Me explico el porque...

Los unicos 2 bits que tenes son el 0 (ADON) y el 1 (GO/DONE),
Si estas cambiando de canales, estas usando el ADC, por lo tanto lo tendrias activo, es decir ADON siempre seria 1. No creo que quieras cambiar canal y tener el modulo del ADC apagado, no le veo sentido. Ya que seguramente lo actives en el comienzo y quede asi para siempre.

El bit GO/DONE te permite saber si hay una lectura en progreso, por lo tanto al estar en 1 significa que no deberias cambiar el canal, ya que esta procesandose una lectura. Si esta en 0 si, y al estar en 0, te interesa que siga en 0, por eso no me preocupo.

Si tenes la precaucion de cambiar el canal cuando el ADC no esta convirtiendo, entonces solo una instruccion necesitarias.

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3216
Re:Arreglo para configurar canal ADC
« Respuesta #2 en: 22 de Enero de 2020, 16:40:02 »
OK. Me lo apunto.

Gracias!!!
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡