Autor Tema: PIC, CCS, LCD y mostrar variable  (Leído 6616 veces)

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

Desconectado cactus_power

  • PIC10
  • *
  • Mensajes: 13
PIC, CCS, LCD y mostrar variable
« en: 02 de Junio de 2008, 17:47:54 »
Hola, buenas noches (o días).

Tengo un problema que no logro resolver y que trata de visualización de una variable por un LCD.

Compilador utilizado--> CCS C v4.03
Microcontrolador --> PIC 18F2550
Módulo LCD compatible con el HITACHI

Bien la variable en cuestion debe salir del calculo de dos variables que trabajan correctamente. En concreto esta variable representarà una velocidad en centimetros por segundo.

Concretamente quiero mostrar el dato velocidadmedia, que se calcula así:

         metros=longitud*2*veces;                                        ---> Rango máximo de 50*2*140=14000 --> Necessario un int16 para variable metros.
         velocidadmedia=(metros) / ((minutos*60) + segundos);    ---> Máximo rango numerador=14000, mientras que del denominador = 255*60+59=15359
         velocidadmedia=velocidadmedia* 100;                            --->Paso a cm por segundo, ya que arriba tengo metros/segundo


Està claro que metros debe ser int16, i que velocidadmedia debe ser float, verdad? (Ahora ya dudo de todo)

Después de realizar el calculo (que no se yo si lo realiza correctamente), lo intento mostrar por el LCD.


printf(lcd_putc,"\fVelocidad media:\t   %f",velocidadmedia)
-----------------

Mi pregunta és, que hago mal? Que debería hacer?



Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: PIC, CCS, LCD y mostrar variable
« Respuesta #1 en: 02 de Junio de 2008, 18:00:28 »
Saludos cactus!
Bueno la variable de tipo float es si vas a trabajar con decimales... a mí me parece que no es ese tu caso según lo que has explicado.
Ahora bien, si el máximo de velocidad media en la segunda línea es 15.359, en la tercera al multiplicar por 100 será 1.535.900, muy elemental no?
Así que no te bastará con un int16, que llega máximo a 65.535. Deberás declararla como int32.
Ahora bien, podrías cargar todo el código? Y si tienes algún esquemático, simulación en proteus, etc?
Así se te puede ayudar mejor.
ok nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web