Cleaning up code


Closed Thread
Results 1 to 4 of 4

Hybrid View

  1. #1
    Join Date
    Nov 2005
    Location
    Bombay, India
    Posts
    966


    Did you find this post helpful? Yes | No

    Default

    Since PBP does not allow structures(at least I'm not aware of such), we have to be a little creative. This is purely conceptual, UNTESTED code.

    Code:
    NoOfStructures: con 8    ' How many channels (1 struct per channel)
    StructureSize:  con  10 'each is a 10 bytes long structure
    Ton:        con  0  ; len 2b      ; declare storage for a word
    Toff:        con  2  ; len 2b      
    Ron:        con  4  ; len 2b      
    Roff:        con  6  ; len 2b      
    Trigger:   con  8  ; len 1b      
    Reset:     con  9  ; len 1b      
    
    ' clear out as many eeprom bytes as we need to save data
    EEbase  Data   0(NoOfStructures*StructureSize)
    
    ' This is where we bring out our structure to RAM
    Information:  var    byte[StructureSize]        ' space for 1 structure
    Count:           var    byte  ' temporary use counter
    gr0:               var    byte  ' 8channels*10bytes = 80 max
    gr1:               var    byte
    
    ' Read the settings for channel gr0 from eeprom
    GetSettings:
        gr0 = gr0*SizeOfStructure
        for count = 0 to StructureSize-1
             Read gr0+count, Information+count
        next
        return
    
    ' Put the settings for channel gr0 back to eeprom
    PutSettings:
        gr0 = gr0*SizeOfStructure
        for count = 0 to StructureSize-1
             Write gr0+count, Information+count
        next
        return
    
    ' Accessing the elements of the structure
        My_Ton = Information[Ton]
        My_Toff = Information[Toff]
        ..... and so on

  2. #2


    Did you find this post helpful? Yes | No

    Default

    Thank you, I will give it a go tonite

  3. #3
    Join Date
    Jan 2006
    Location
    Istanbul
    Posts
    1,185


    Did you find this post helpful? Yes | No

    Default

    Try this one, too.
    This one uses 6 times less code and does the same thing.
    Also, you can use the same variable names as they only refer to the array elements.



    Code:
    <font color="#000000">StagesX <font color="#000080"><b>VAR WORD</b></font>[<font color="#FF0000">32</font>]
    StagesY <font color="#000080"><b>VAR BYTE</b></font>[<font color="#FF0000">16</font>]
    
    Stage1tOn  <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">0</font>]  <font color="#000080"><i>'EEprom location from 0 to 63.
    </i></font>Stage1tOFF <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">1</font>]
    Stage1ROn  <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">2</font>]
    Stage1ROFF <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">3</font>]
    Stage2tOn  <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">4</font>]
    Stage2tOFF <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">5</font>]
    Stage2ROn  <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">6</font>]
    Stage2ROFF <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">7</font>]
    Stage3tOn  <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">8</font>]
    Stage3tOFF <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">9</font>]
    Stage3ROn  <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">10</font>]
    Stage3ROFF <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">11</font>]
    Stage4tOn  <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">12</font>]
    Stage4tOFF <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">13</font>]
    Stage4ROn  <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">14</font>]
    Stage4ROFF <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">15</font>]
    Stage5tOn  <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">16</font>]
    Stage5tOFF <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">17</font>]
    Stage5ROn  <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">18</font>]
    Stage5ROFF <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">19</font>]
    Stage6tOn  <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">20</font>]
    Stage6tOFF <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">21</font>]
    Stage6ROn  <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">22</font>]
    Stage6ROFF <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">23</font>]
    Stage7tOn  <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">24</font>]
    Stage7tOFF <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">25</font>]
    Stage7ROn  <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">26</font>]
    Stage7ROFF <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">27</font>]
    Stage8tOn  <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">28</font>]
    Stage8tOFF <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">29</font>]
    Stage8ROn  <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">30</font>]
    Stage8ROFF <font color="#000080"><b>VAR </b></font>StagesX[<font color="#FF0000">31</font>]
    
    Stage1Trig  <font color="#000080"><b>VAR </b></font>StagesY[<font color="#FF0000">0</font>]  <font color="#000080"><i>'EEprom location from 64 to 79.
    </i></font>Stage2Trig  <font color="#000080"><b>VAR </b></font>StagesY[<font color="#FF0000">1</font>]
    Stage3Trig  <font color="#000080"><b>VAR </b></font>StagesY[<font color="#FF0000">2</font>]
    Stage4Trig  <font color="#000080"><b>VAR </b></font>StagesY[<font color="#FF0000">3</font>]
    Stage5Trig  <font color="#000080"><b>VAR </b></font>StagesY[<font color="#FF0000">4</font>]
    Stage6Trig  <font color="#000080"><b>VAR </b></font>StagesY[<font color="#FF0000">5</font>]
    Stage7Trig  <font color="#000080"><b>VAR </b></font>StagesY[<font color="#FF0000">6</font>]
    Stage8Trig  <font color="#000080"><b>VAR </b></font>StagesY[<font color="#FF0000">7</font>]
    StageReset1 <font color="#000080"><b>VAR </b></font>StagesY[<font color="#FF0000">8</font>]
    StageReset2 <font color="#000080"><b>VAR </b></font>StagesY[<font color="#FF0000">9</font>]
    StageReset3 <font color="#000080"><b>VAR </b></font>StagesY[<font color="#FF0000">10</font>]
    StageReset4 <font color="#000080"><b>VAR </b></font>StagesY[<font color="#FF0000">11</font>]
    StageReset5 <font color="#000080"><b>VAR </b></font>StagesY[<font color="#FF0000">12</font>]
    StageReset6 <font color="#000080"><b>VAR </b></font>StagesY[<font color="#FF0000">13</font>]
    StageReset7 <font color="#000080"><b>VAR </b></font>StagesY[<font color="#FF0000">14</font>]
    StageReset8 <font color="#000080"><b>VAR </b></font>StagesY[<font color="#FF0000">15</font>] 
     
    Index  <font color="#000080"><b>VAR BYTE
    </b></font>Index2 <font color="#000080"><b>VAR BYTE
    </b></font>Temp   <font color="#000080"><b>VAR WORD
     
     
     
    </b></font>Read_Data:
        Index2 = <font color="#FF0000">0
        </font><font color="#000080"><b>FOR </b></font>Index = <font color="#FF0000">0 </font><font color="#000080"><b>TO </b></font><font color="#FF0000">62 </font><font color="#000080"><b>STEP </b></font><font color="#FF0000">2
            </font><font color="#000080"><b>READ </b></font>Index,Temp.LowByte       <font color="#000080"><i>' Word sized data. Index is the eeprom addr.
            </i><b>READ </b></font>(Index+<font color="#FF0000">1</font>),Temp.HighByte
            StagesX[Index2] = Temp        <font color="#000080"><i>'Index2 is array adr.
            
            </i><b>IF </b></font>Index2 &lt; <font color="#FF0000">16 </font><font color="#000080"><b>THEN READ </b></font>(Index2+<font color="#FF0000">64</font>),StagesY[Index2]  <font color="#000080"><i>' Byte sized data.
            </i></font>Index2 = Index2 + <font color="#FF0000">1     </font><font color="#000080"><i>' Max. 31.
        </i><b>NEXT </b></font>Index
     
     <font color="#000080"><b>RETURN
     
     
     
     
     
     
     
    </b></font>
    Last edited by sayzer; - 2nd December 2009 at 07:17. Reason: typo
    "If the Earth were a single state, Istanbul would be its capital." Napoleon Bonaparte

Similar Threads

  1. Reading in Manchester code
    By brid0030 in forum Code Examples
    Replies: 0
    Last Post: - 10th March 2009, 21:55
  2. How much code space do PBP statements use.
    By Darrel Taylor in forum Code Examples
    Replies: 5
    Last Post: - 13th February 2009, 21:31
  3. Loop with two motor and 2 sensors
    By MrRoboto in forum mel PIC BASIC
    Replies: 4
    Last Post: - 8th December 2008, 23:40
  4. Making Program Code Space your playground...
    By Melanie in forum Code Examples
    Replies: 15
    Last Post: - 19th July 2008, 08:26
  5. Re-Writing IF-THEN-AND-ENDIF code?
    By jessey in forum mel PIC BASIC Pro
    Replies: 6
    Last Post: - 18th August 2006, 17:23

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