TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: churrinfunflais en 30 de Septiembre de 2011, 15:07:35

Título: Ayuda con canales analogicos del 18f14k50 en ccs
Publicado por: churrinfunflais en 30 de Septiembre de 2011, 15:07:35
Hola amigos...

tengo un problemita con los canales analogicos de el PIC 18f14k50 en especial el C2 (AN6) y el ADCON0 , espero que me puedan ayudar, aca les dejo una imagen y el codigo que estoy utilizando.

Código: [Seleccionar]
#include <18F14K50.h>
#device adc=8
#fuses xt, nowdt
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=pin_b7, rcv=pin_b5, bits=8)

int acelerometro() {
    int valor, x, y, z;

    set_adc_channel(11);
    delay_ms(10);
    x = read_adc();

    set_adc_channel(10);
    delay_ms(10);
    y = read_adc();

    set_adc_channel(6);
    delay_ms(10);
    z = read_adc();

    if (z < x && z < y && z < 60) {
        valor = 1;
    } else if (z > x && z > y && z > 160) {
        valor = 2;
    } else if (x < y && x < z && x < 60) {
        valor = 3;
    } else if (x > y && x > z && x > 160) {
        valor = 4;
    } else if (y < x && y < z && y < 60) {
        valor = 5;
    } else if (y > x && y > z && y > 160) {
        valor = 6;
    } else {
        valor = 0;
    }
    return (valor);
}

void main(void) {

    setup_adc_ports(ALL_ANALOG);
    setup_adc(ADC_CLOCK_INTERNAL);
    setup_vref(VREF_OFF);

    int valor = 1;
    int flag = 0;

    while (TRUE) {
        while (valor != 0) {
            if (flag != 0) {
                putc(170);
                delay_ms(10);

                while (TRUE) {
                    valor = acelerometro();

                    if (valor == 0)
                        break;

                    putc(valor);
                    delay_ms(10);
                }

                putc(171);
                delay_ms(10);
            } else {
                flag = 1;
                valor = acelerometro();
            }
        }
        valor = acelerometro();
    }
    putc(valor);
}
Título: Re: Ayuda con canales analogicos del 18f14k50 en ccs
Publicado por: jeremylf en 30 de Septiembre de 2011, 16:40:11
Lo que pasa que es pic tiene todos sus canales de AD pero no todos funcionan, desde el A3 son los que funcionan. Entonces debes especificar que desde ahi seran analogicos y lo mismo al selecionar el canal.
Título: Re: Ayuda con canales analogicos del 18f14k50 en ccs
Publicado por: churrinfunflais en 03 de Octubre de 2011, 21:02:22
no sera un problema de fusibles???