Hola amigos,
Les felicito por este gran espacio...quisiera pedirles un poquito de ayuda con un programita que trato de hacer para medir una presion a partir de un voltaje. Estoy ocupando el compilador CCS y el mensaje que aparece es: "Error(71): Out of ROM, A segment or the program is too large", la verdad que no entiendo demasiado a que se debe, he tratado de corregir algunas secuencias pero no pasa nada...bienvenidas las sugerencias y gracias!
///////////////////////////// DIRECTIVAS DE PREPROCESADO /////////////////////////////
#include <16F870.h>
#device adc=10
#fuses XT,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT
#use delay(clock=4000000)
#include "lcd.c"
#include <math.h>
#use fast_io(B)
////////////////////////////////////// GLOBALES //////////////////////////////////////
const int v_max=5;
const int escala=1023;
const float ctte=1.667;
const float mbar=11.33;
////////////////////////////////////// RUTINAS ////////////////////////////////////////
void borra_lcd()
{
lcd_putc("f"

; // Borra el lcd
}
void calcula_voltaje(float valor,float &voltaje)
{
voltaje = valor*v_max/escala*2; //Calcula el voltaje desde ADC
desde y multiplica *2 para
compensar la entrada
}
void calcula_value(float voltaje,float &value)
{
value=ctte*voltaje-mbar; //Calcula value
}
void calcula_pressure(float value, float &pressure)
{
pressure=pow(10,value); //Calcula presion segun algoritmo 10
elevado a value
}
/////////////////////////////////////// PRINCIPAL //////////////////////////////////////
void main()
{
float valor,voltaje,value,pressure;
set_tris_B(0b00000000); // Puerto B configurado como salida
port_b_pullups(FALSE); // Desactiva pull-ups puerto B
setup_adc_ports(RA0_RA1_RA3_ANALOG); //Configura A0,A1 y A3 como entradas analógicas y Vdd como voltaje de referencia
setup_adc(ADC_CLOCK_INTERNAL); // Reloj para el conversor
set_adc_channel(0); // Selecciona el canal 0 (RA0)
for(valor=0;1.82<voltaje<8.6

// Bucle
{
valor = read_adc();
calcula_voltaje(valor,voltaje); // Entrada parámetro "valor" y
devuelve "voltaje"
calcula_value(voltaje,value); // Entrada parametro "voltaje" y
devuelve "vale"
calcula_pressure(value,pressure); // Entrada parametro "value" y
devuelve "pressure"
lcd_init(); // Inicializa LCD
borra_lcd(); // Borra LCD
printf(lcd_putc,"%f",pressure); // Muestra en el lcd el contenido de la variable "pressure"
delay_ms(100); // Retardo de un 100 ms
}}