Autor Tema: se puede hacer un array con float  (Leído 1982 veces)

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

Desconectado Kamus23

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 63
se puede hacer un array con float
« en: 03 de Julio de 2011, 20:07:43 »
jejejeje en verdad nose si esto lo puedo hacer o no... pero me esta dando problemas.. es algo asi... cada vez q alla un pulso alto en el pin RC2 entonces leo el valor del ADC, y lo guardo en una array o vector...

luego cuando desactivo el PIN RC0 entonces en la LCD deberia ver los diferentes valores de ADC que e guardado

Código: [Seleccionar]
#include <16f873A.h>       //PIC A USAR
#fuses XT,NOWDT,NOPROTECT,NOLVP
#device adc=10              //Usa resolución de 8 bits
#include <math.h>          //PARA OPERACIONES MATEMATICAS
#include <string.h>        // para cadenas y otras cosas
#use delay(clock=20000000)     //CRISTAL A UTILIZAR
#use standard_io(b)
#define use_portb_lcd //selecciono puerto b para el LCD
#include <LCD.c>           //CONTROLADOR DEL LCD
//#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7) //configurar el puerto serial
#define inicio PIN_C0
#define valvula PIN_C1
#define pulso PIN_C2
int16 temp1;
float temp;
char n;
float temporal[]="";

void main()
{
set_tris_c(0x05);// 00000101
// VARIABLES A USAR
output_c(0);
n=0;
lcd_init();                       //INICIALIZA EL LCD
lcd_putc(" CONTROL VOLTAJE"); //IMPRIME EN PANTALLA
lcd_gotoxy(7,2);                  //COLOCA EL CURSOR EN COLUMNA 7 FILA 2
lcd_putc("ON - OFF");             //IMPRIME EN PANTALLA
delay_ms(1000);                   //ESPERA 5 SEGUNDOS
lcd_putc("\f");                   //LIMPIA PANTALLA
inicio1:
  while(input(inicio)){
  
   setup_adc(ADC_CLOCK_INTERNAL);
      setup_adc_ports(RA0_RA1_ANALOG_RA3_REF);// INDICA RA0 Y RA1 ANALOGO CON REFERENCIA A RA3
     // Setup_adc_ports(RA0_ANALOG_RA3_REF);          //PONE PUERTO RA0 ANALOGO
      set_adc_channel(0);                   // INDICA EL PIN A LEER RA0
      delay_us(20);      
  if (input(pulso)){
      n=n+1;
      temp1=read_adc();                     //LEE EL VALOR DEL PIN
      temp=(0.002929 *temp1);
      temporal[n]=temp;
       lcd_gotoxy(1,1);                      //COLOCA EL CURSOR EN COLUMNA 1 FILA 1
      lcd_putc("VOLTAJE...");    //IMPRIME EN PANTALLA                                        
      lcd_gotoxy(4,2);                      //COLOCA EL CURSOR EN COLUMNA 4 FILA 2
      printf(lcd_putc," T=%f C",temp);  //MUESTRA EN EL LCD EL VALOR DE TEMPERATURA
      delay_ms (1);
      
 }
 }goto inicio2;
  
  inicio2:
  
do{
  n=n-1;
  lcd_gotoxy(4,2);  
  printf(lcd_putc," T=%f C",temporal[n]);  //MUESTRA EN EL LCD EL VALOR DE TEMPERATURA
  delay_ms(2000);
  }while(n>0);
 }
  
  

PD: busque y busque en google y en el foro  :mrgreen: :mrgreen: pero no consigue mucha info
« Última modificación: 03 de Julio de 2011, 21:43:31 por Kamus23 »
Kamus de Acuario

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: se puede hacer un array con float
« Respuesta #1 en: 03 de Julio de 2011, 22:26:47 »
Si se puede crear, pero hay que definir su tamaño. O sea float Valores[10].


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Kamus23

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 63
Re: se puede hacer un array con float
« Respuesta #2 en: 04 de Julio de 2011, 23:11:34 »
osea que ajuro tengo q definir su tamaño?? lastima... bueno jejej gracias entonces sera asi...
Kamus de Acuario

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: se puede hacer un array con float
« Respuesta #3 en: 04 de Julio de 2011, 23:32:33 »
El tipo de inicializacion q usaste solo es valido para arreglos de chars (strings). Podes hacer un array de float como dijo suky, o si lo queres hacer de forma dinamica, podes usar la funcion malloc.
Código: [Seleccionar]
#include <stdlibm.h>
...
...
float *temporal;
temporal=malloc(10*sizeof(float));
Podes cambiar ese 10 por cualquier valor, inclusive una variable. Despues si queres liberar ese espacio de memoria, lo podes hacer con free()
saludos!!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein


 

anything