tables using PBP and asm command retlw


Closed Thread
Results 1 to 5 of 5

Hybrid View

  1. #1
    Join Date
    May 2004
    Location
    NW France
    Posts
    3,653


    Did you find this post helpful? Yes | No

    Default Re: tables using PBP and asm command retlw

    Hi, Queenidog

    Don't you know the LOOKUP command exactly does that ??? ( much simpler, no ??? ...)

    you also could play with POKECODE and PEEKCODE ... to make things a bit funny ...

    Code:
    
    '*****************************************************************************
    PwmLoop: ' 165 steps per sec. = ... 3ms per loop
    '*****************************************************************************
     
    'Short loop 24 > 336 µs
      
    IF ( Sampled >= 31 ) then      ' No light if Sampled < 31
     
     Delay2 = 0
     peekcode ( 850 + sampled ), delay  ' 881 = 850 + 31 !!!
     
     IF Sampled >= 87 Then Longloop
     
     IF Sampled >= 79 THEN Delay2 = 1  ' Add 255 to Pauseus...using BYTE
     
     Strob_led = 1
      
     Pauseus delay
     IF Delay2 Then Pauseus 255
          
     Strob_led = 0
           
    ENDIF
     delay = 0
      
    Longloop:
     
     For x = 0 to 13 ' min 336 µs
     
      IF delay then Strob_led = 1   'Skip min Pauseus ...
       
      Pauseus delay
     
      Strob_led = 0
      
      Pauseus   Duration  - delay
      
     next x
    RETURN
    
    ....
    
    
    '*****************************************************************************
    'Fading_Table
    '*****************************************************************************
    '             0   1   2   3   4   5   6   7   8   9  
    '
    Pokecode @881,       24, 27, 29, 32, 35, 38, 41, 44, 47,_ '  30
                 50, 54, 57, 60, 64, 68, 71, 75, 79, 83,_ '  40
                 87, 91, 96,100,104,109,113,118,123,127,_ '  50
                132,137,142,147,153,158,163,169,174,180,_ '  60
                186,191,197,203,209,212,217,245,250,  1,_ '  70
                  7, 13, 21, 30, 39, 48, 57, 24, 25, 26,_ '  80
                 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,_ '  90
                 37, 38, 39, 40, 41, 43, 44, 45, 46, 48,_ ' 100
                 49, 50, 52, 53, 54, 56, 57, 59, 60, 62,_ ' 110
                 63, 65, 67, 68, 70, 72, 73, 75, 77, 79,_ ' 120
                 81, 83, 84, 86, 88, 90, 92, 94, 97, 99,_ ' 130
                101,103,105,107,110,112,114,117,119,122,_ ' 140
                124,126,129,132,134,137,139,142,145,148,_ ' 150
                150,153,156,159,162,165,168,172,176,180  ' 160
    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 " !!!
    *****************************************

  2. #2
    Join Date
    Jun 2011
    Location
    Indian Harbour Nova Scotia
    Posts
    108


    Did you find this post helpful? Yes | No

    Default Re: tables using PBP and asm command retlw

    I was using Lookup but the table size is restricted by page boundaries (thus only 96 characters can be stored in a table).

    Here's the code I was using for a small data table:

    Start:
    y=0:z=1
    For x= 0 to 15 'reading 16 bytes/characters from table Imagebyte
    lookup x, ["THIS IS A TEST"], imagebyte
    GoSub Writebyte
    next x
    goto Start


    Writebyte: 'Subroutine to send serial image data to shift registers
    y=y+1
    'high clockpin This statement NOT NEEDED
    shiftout datapin,Clockpin,MSBFirst,[imagebyte] 'shift out imagebyte one bit at a time
    'low clockpin This statement NOT NEEDED
    lcdout $fe, 1 'clear display
    lcdout $FE, $14 , imagebyte 'Display value on LCD
    Low PORTE.2 'strobe for LCD
    'pause 200
    z=y//4 'get modulus (remainder) remainder is only zero when 4 divides
    If z=0 then 'evenly into x (4/4= 1, 0 remainder, 8/4=2, 0 remainder
    high Latch '4 bytes in registers, ie 32 bits so enable both register latches
    pause 1 'pause 1 mS may not need.
    outena=0 ' I have 4 bytes, light up LEDs

    Are you saying I can use Pokecode to create my table of values, and Peekcode to retrieve them? 255 values ? You have about 150 values in your table example below. What does your program do?

  3. #3
    Join Date
    Jun 2011
    Location
    Indian Harbour Nova Scotia
    Posts
    108


    Did you find this post helpful? Yes | No

    Default Re: tables using PBP and asm command retlw - solved

    Alain, thanks for the tip about using PokeCode and Peekcode. This did the trick. I put 255 values in a table and was able to read everyone of them. So simple...

    Why is Melanie saying to use Writecode/Readcode? What is the difference?

    And why does PokeCode work where Lookup doesn't (any more than 96 values and it cacks)? In the PBP manual it states that Lookup and Arrayread can have 255 values. Is this an error, or just not the "whole truth"?

  4. #4


    Did you find this post helpful? Yes | No

    Default Re: tables using PBP and asm command retlw

    I am trying to understand the table method and I came across this example. I am having trouble visualizing (Alain's fading table) this method as to how it will be an equivalent table in lets say in an excel file. I mean will it just be row numbers (starting from lets say 881) and 1 column with all the stored values one below the other starting from 24, and why is "_" sign is there in the table , I don't know if I have made my question clear, but I can try explain differently if needed
    ___________________
    WHY things get boring when they work just fine?

Members who have read this thread : 0

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

Tags for this Thread

Posting Permissions

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