Estoy usando un PIC16f877A y resulta que dependiendo de en qué valor se encuentra un valor del adc en el A3 me tiene que salir un mensaje por el lcd.
Es decir: Si en el A3 tengo 120 (ya convertido con el ADC) tiene que mostrar algo, y si está 250 otra cosa.
Simplemente no funk... Y ya le he dado las vueltas y las vueltas y la verdad no encuentro el error...
#include "C:\Users\Vinicio\Documents\Micho\Cajita mágica\Programa.h"
#include <LCD.C>
#include <string.h>
float tiempo, tadc;
unsigned int madc, band, band1;
char mensaje[];
void mensajelcd(unsigned int band);
//!#int_RB
//!void RB_isr(void)
//!{
//!
//!}
//!
void main()
{
port_b_pullups(TRUE);
setup_adc_ports(AN0_AN1_AN3);
setup_adc(ADC_CLOCK_INTERNAL);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DIV_BY_16,255,1);
setup_ccp1(CCP_PWM);
set_pwm1_duty(0);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
lcd_init();
enable_interrupts(INT_RB);
enable_interrupts(GLOBAL);
// TODO: USER CODE!!
while(true)
{
set_adc_channel(0);
tadc= read_adc();
tiempo= tadc*7.84;
delay_us(100);
set_adc_channel(3);
madc= read_adc();
if(madc>=0 && madc<=25) band=0;
if(madc>=26 && madc<=50) band=1;
if(madc>=51 && madc<=75) band=2;
if(madc>=76 && madc<=100) band=3;
if(madc>=101 && madc<=125) band=4;
if(madc>=126 && madc<=150) band=5;
if(madc>=151 && madc<=175) band=6;
if(madc>=176 && madc<=200) band=7;
if(madc>=201 && madc<=225) band=8;
if(madc>=226 && madc<=255) band=9;
if(madc<0 && madc>255) band=10;
mensajelcd(band);
// if(band1=!band) lcd_putc('\f');
band1=band;
}
}
void mensajelcd(unsigned int band)
{
unsigned int i;
switch (band) {
case 0 : mensaje= "PRUEBA 0"; break;
case 1 : mensaje= "PRUEBA 1"; break;
case 2 : mensaje= "PRUEBA 2"; break;
case 3 : mensaje= "PRUEBA 3"; break;
case 4 : mensaje= "PRUEBA 4"; break;
case 5 : mensaje= "PRUEBA 5"; break;
case 6 : mensaje= "PRUEBA 6"; break;
case 7 : mensaje= "PRUEBA 7"; break;
case 8 : mensaje= "PRUEBA 8"; break;
case 9 : mensaje= "PRUEBA 9"; break;
default : mensaje= "INDEFINIDO"; break;
}
printf(lcd_putc,"%s", mensaje); //AQUI NO ME IMPRIME NADA.
delay_us(tiempo);
lcd_gotoxy(1,1);
}