void main() { SET_TRIS_A(0b00000001); SETUP_ADC_PORTS(AN0); SETUP_ADC(ADC_CLOCK_INTERNAL); ENABLE_INTERRUPTS(GLOBAL | INT_TIMER0); SETUP_TIMER_0(RTCC_INTERNAL | RTCC_8_BIT| RTCC_DIV_16); SET_TIMER0(100); while(true) { SET_ADC_CHANNEL(0); //Configura o canal de leitura 0 delay_us(100); //Tempo de ajuste do canal (necessário) ad0 = READ_ADC(); //Faz a conversão AD e a salva na variável ad0 ad0 = (ad0 * 5000)/1023; d1 = ad0/1000; d2 = (ad0/100) % 10; d3 = (ad0/10) % 10; delay_ms(500); } }
void bsp_init(void) { set_tris_c(0xff); set_tris_e(0xff); set_tris_a(0x00); output_a(0); set_tris_a(0);//configurado como salida set_tris_e(1); //configurado como entrada SETUP_ADC_PORTS(sAN5); // este pin es analogo SET_ADC_CHANNEL(5); // el canal que usaremos y de cual obtendremos la señal es el 5 setup_adc(ADC_CLOCK_DIV_32); lcd_init(); }
float = volt void main() { set_tris_e(0xFF); SETUP_ADC_PORTS (sAN5); SET_ADC_CHANNEL(5); setup_adc(ADC_CLOCK_DIV_32); lcd_init(); while (1) { valorAnalogo = read_adc(); volt = valorAnalogo++ num; lcd_putc("\f");//limpiar la pantalla printf (lcd_putc, "%f",volt);//para imprimer un valor flotante en el LCD delay_ms(1000); } }