LED 'Dot' Bargraph Issues - Newbie Code!


Results 1 to 12 of 12

Threaded View

  1. #8
    Join Date
    Jan 2009
    Posts
    50


    Did you find this post helpful? Yes | No

    Default Re: LED 'Dot' Bargraph Issues - Newbie Code!

    Hi Darrel,
    Here is the entire code on that link:
    Code:
    '****************************************************************
    '*  Name    : Average_Hyst.pbp                                  *
    '*  Author  : Darrel Taylor                                     *
    '*  Date    : 7/19/2005                                         *
    '*  Version : 3.0                                               *
    '*  Notes   : Modified to use Hysteresis                        *
    '*          : Use as an INCLUDE file                            *
    '****************************************************************
    ' This routine will keep a "Running Average" of 10-bit Analog Values 
    ' Instead of adding a bunch of values together and then dividing by the number 
    ' of samples, it averages each sample into the final result immediately.
    ' This eliminates the need for 32 bit math.
    ' To allow it to "Catch up" to large changes, set the FAspread to an 
    ' acceptable range.
    ' Simply place the new number in VALUE and GoSub Average 
    ' The Average (with Hysterisis) will be returned into the same variable VALUE
    
    '---- [ User Options ] ---------------------------------------------------------
    HystLevel   CON  7      ' 7 = .7 of the Least Significant Digit
                            '    Valid HystLevel is from 6 to 13
    AvgCount    CON  16     ' = Number of samples to average. For best response 
                            '    times, keep AvgCount as small as you can
    FAspread    CON  50     ' = Fast Average threshold +/-
                            '  FAspread should be larger than the worst possible
                            '  noise in the A/D conversion.
    '-------------------------------------------------------------------------------
    
    AVGchanged  VAR  BIT    ' 1 indicates that the Average Value has changed
                            ' you have to clear this bit after using it
    ADavg       VAR  WORD   ' Stores the current Average
    ADhyst      VAR  WORD   ' Stores the current Value for Hysterisis
    Value       VAR  WORD   ' Input / Output variable to be averaged
    spread      CON  FAspread * 10  ' adjust spread *10 for Hyst.
    
    GOTO OverAverage
    ' -=-=-=-=-=-=  Average Analog values -=-=-=-=-=-=-=-=-=-=
    Average:
        Value = Value * 10                      ' Scale value up for hysterisis
        IF Value = ADavg Then NoChange          ' if they're the same, nothing to do 
        IF ABS (Value - ADavg) > spread OR Value < AvgCount Then FastAvg
        IF ABS (Value - ADavg) < AvgCount Then RealClose
        ADavg = ADavg - (ADavg/AvgCount)         ' Subtract 1 samples worth
        ADavg = ADavg + (Value/AvgCount)         ' Add in the new sample portion 
        GoTo AVGok
      FastAvg:                                   ' Catch up to the changing value
        ADavg = Value                            ' Set Average to the current value
        GoTo AVGok
      RealClose:                                 ' Reduce the sample size when
        ADavg = ADavg - (ADavg/(AvgCount/4))     ' the average and the sample are
        ADavg = ADavg + (Value/(AvgCount/4))     ' "Real Close"
      AVGok:
        IF ABS (ADavg - ADhyst) > HystLevel then ' If it changed > HystLevel +/-
            ADhyst = ((ADavg + 5) / 10) * 10     ' Round ADavg to get new Value
            AVGchanged = 1                       ' Indicate that Average changed
        ENDIF   
      NoChange:
        Value = ADhyst / 10                      ' Scale the result down
    Return
    
    OverAverage:
    '---------------------------------------------------------------
    It may not have been put in there properly. Can you click the link and see what you get?

    From the code, it jumps over the section staring with:
    ' -=-=-=-=-=-= Average Analog values -=-=-=-=-=-=-=-=-=-=

    It does not seem to make sense to me.

    Thanks. :-)
    Last edited by SOTASOTA; - 14th February 2013 at 06:09.

Similar Threads

  1. Replies: 3
    Last Post: - 24th March 2015, 12:51
  2. Replies: 19
    Last Post: - 26th April 2012, 21:23
  3. Newbie needs example RC code
    By PickyBiker in forum mel PIC BASIC Pro
    Replies: 9
    Last Post: - 18th March 2010, 03:10
  4. Microchip Code Issues
    By Destovi in forum General
    Replies: 4
    Last Post: - 20th March 2008, 14:32
  5. BaseBall pitching Code sample - NewBie
    By foxstar in forum Code Examples
    Replies: 12
    Last Post: - 8th May 2007, 20:29

Members who have read this thread : 0

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