Newbie - LCDOUT command


Closed Thread
Results 1 to 5 of 5
  1. #1
    Join Date
    Jan 2009
    Posts
    50

    Default Newbie - LCDOUT command

    I have a newbie question. I wish to display a value on an LCD 16*2 display.
    Got the display working great.

    I read the values on PortB and wish to convrt what I read into a percentage of full scale.
    I total all the values on PortB and store into variable WTotal (WTotal var WORD). I also have declared variable WTotalPercentage (WTotalPercentage var WORD).

    The values go from 0 to 1275.
    I wish to show a percentage based on a full scale reading of 1275.
    For example:
    If I read a vaule of 256, this represents approx. 20% of 1275.
    The math being WTotalPercentage = WTotal/1275*100
    Simple.
    Now how do I display the value of WTotalPercentage in an LCD display?

    If I use:
    LCDOUT DEC (WTotalPercentage)

    I get a reading of zero. I think it lies in the math of WTotalPercentage = WTotal/1275*100, however I do not know how picBasic math function work.
    Help!

  2. #2
    Join Date
    May 2004
    Location
    NW France
    Posts
    3,615


    Did you find this post helpful? Yes | No

    Default

    Hi SOTA^2

    I do not understand one thing :

    How do you do for entering a 1275 value on portB ??? ....

    as maximum value is 255 or %11111111


    for the math ...

    IF your max value is 1275 ...

    Wtotal/1275 = 0 or 1 ( integer math Ok ??? )

    if multiplied by 100 ... result is 0 or 100

    That's all !!!

    first multiply Wtotal by 100 and AFTER that divide by 1275 ...

    Alain
    ************************************************** ***********************
    Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
    ************************************************** ***********************
    IF there is the word "Problem" in your question ...
    certainly the answer is " RTFM " or " RTFDataSheet " !!!
    *****************************************

  3. #3
    Join Date
    Oct 2010
    Location
    Northern Colorado
    Posts
    19


    Did you find this post helpful? Yes | No

    Default

    What I've done with my projects when using a 16F884 is follow the general command of LCDOUT. I copied the code from my last project, I think it should work the same for you. So if I had a value previous stored in the variable V, and wanted to display that value, I would do. The dec4 will show 4 sig figs.

    Code:
    LCDOUT $FE, 1, dec4 V
    Another forum member showed me this, but if you want to use decimal precision as well the code is as follows. So say you are reading voltage on a pin and want that displayed with a decimal. You first have to store each digit as a variable, then display it.

    V = a number that was been previously stored during the program in a variable

    Code:
    A = V DIG 4
    B = V DIG 3
    C = V DIG 2
    D = V DIG 1
    
    LCDOUT $FE, 1, "Voltage ", dec1 A, dec1 B, ".", dec1 C, dec1 D

    Hope this helps.

    -Marcus

  4. #4
    Join Date
    Oct 2010
    Posts
    27


    Did you find this post helpful? Yes | No

    Default

    to display volts with a decimal point example

    Volts_2=AIN2*50/51
    HI_2 = Volts_2/10
    LOW_2 = Volts_2//10
    Lcdout $fe, 1, "Bat Volts =",#HI_2,".",#LOW_2

    leaving volts * 10 or 100 to maintain precision

  5. #5
    Join Date
    Jan 2009
    Posts
    50


    Did you find this post helpful? Yes | No

    Default

    I have got it to work using DIV32 command.
    Thanks to all!!
    Here is the updated code:
    mainloop:
    WTotal=(W0+W1+W2+W3+W4+W5+W6+W7)
    dummy = WTotal*10000
    WTotal2 = Div32 1275

    LCDOut $fe, 1 ' Clear LCD screen
    LCDOut "AUX IN Volume:"
    'Charac 1234567890123456
    LCDOut $fe, $c0 'Jump to second line
    IF WTotal = 0 Then LCDOut "MAXIMUM (100%)"
    IF WTotal >0 AND WTotal <130 Then LCDOut "-",DEC(WTotal/10), ".", DEC1(WTotal), "dB (", DEC(WTotal2/100), ".", DEC2(WTotal2),"%)"
    IF WTotal >=130 Then LCDOut "-",DEC(WTotal/10), ".", DEC1(WTotal), "dB (", DEC(WTotal2/100), "%)"
    Pause 100

Members who have read this thread : 1

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts