Multiple if then optimization


Results 1 to 36 of 36

Threaded View

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


    Did you find this post helpful? Yes | No

    Default

    Here it is
    982 words

    Code:
    <font color="#008000">@__config _XT_OSC &amp; _WDT_ON &amp; _MCLRE_ON &amp; _LVP_OFF &amp; _CP_OFF
    
    </font><font color="#000080"><b>INCLUDE </b></font><font color="#008000"><b>&quot;modedefs.bas&quot;
    </b></font><font color="#000080"><b>DEFINE </b></font>OSC <font color="#FF0000"><b>4
    </b></font>Uin        <font color="#000080"><b>VAR WORD
    </b></font>B0         <font color="#000080"><b>VAR WORD </b><i>' Cnt is a word variable
    </i></font>InputData  <font color="#000080"><b>VAR WORD </b><i>' variable to receive data into
    </i></font>RepNo      <font color="#000080"><b>VAR BYTE
    
    </b><i>' START OF MAIN PROGRAM
    '
    </i></font>CMCON = <font color="#FF0000"><b>7 </b></font><font color="#000080"><i>' RA0-RA3 are digital I/O
    </i></font>TRISA = <font color="#FF0000"><b>0 </b></font><font color="#000080"><i>' PORT A is output
    </i></font>TRISB = <font color="#FF0000"><b>1 </b></font><font color="#000080"><i>' RB0 is Input others output
    
    </i></font>Main:
    
         <font color="#000080"><b>SERIN </b></font>PORTB.<font color="#FF0000"><b>0</b></font>,N2400,B0
         B0 = <font color="#FF0000"><b>100 </b></font>* B0
         Uin = B0 / <font color="#FF0000"><b>207
         </b></font><font color="#000080"><b>GOSUB </b></font>Bargraph
         <font color="#000080"><b>PAUSE </b></font><font color="#FF0000"><b>5
    
    </b></font><font color="#000080"><b>GOTO </b></font>Main
    
    Bargraph:
    
    <font color="#000080"><b>LCDOUT </b></font><font color="#FF0000"><b>$fe</b></font>,<font color="#FF0000"><b>1      </b></font><font color="#000080"><i>'Valid for all cases.
    
    </i><b>SELECT CASE </b></font>Uin
           
     <font color="#000080"><b>CASE IS </b></font>&lt; <font color="#FF0000"><b>10 
          </b></font><font color="#000080"><b>LCDOUT </b></font><font color="#008000"><b>&quot;TOO LOW&quot;
     </b></font><font color="#000080"><b>CASE IS </b></font>&gt; <font color="#FF0000"><b>10 </b></font><font color="#000080"><b>AND IS </b></font>&lt;= <font color="#FF0000"><b>15
          </b></font>RepNo = <font color="#FF0000"><b>1
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
    
     <font color="#000080"><b>CASE IS </b></font>&gt; <font color="#FF0000"><b>15 </b></font><font color="#000080"><b>AND IS </b></font>&lt;= <font color="#FF0000"><b>19
          </b></font>RepNo = <font color="#FF0000"><b>2
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
    
     <font color="#000080"><b>CASE IS </b></font>&gt; <font color="#FF0000"><b>19 </b></font><font color="#000080"><b>AND IS </b></font>&lt;= <font color="#FF0000"><b>24
          </b></font>RepNo = <font color="#FF0000"><b>3
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
    
     <font color="#000080"><b>CASE IS </b></font>&gt; <font color="#FF0000"><b>24 </b></font><font color="#000080"><b>AND IS </b></font>&lt;= <font color="#FF0000"><b>29
          </b></font>RepNo = <font color="#FF0000"><b>4
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
    
     <font color="#000080"><b>CASE IS </b></font>&gt; <font color="#FF0000"><b>29 </b></font><font color="#000080"><b>AND IS </b></font>&lt;= <font color="#FF0000"><b>34
          </b></font>RepNo = <font color="#FF0000"><b>5
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
    
     <font color="#000080"><b>CASE IS </b></font>&gt; <font color="#FF0000"><b>34 </b></font><font color="#000080"><b>AND IS </b></font>&lt;= <font color="#FF0000"><b>43
          </b></font>RepNo = <font color="#FF0000"><b>6
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
    
     <font color="#000080"><b>CASE IS </b></font>&gt; <font color="#FF0000"><b>43 </b></font><font color="#000080"><b>AND IS </b></font>&lt;= <font color="#FF0000"><b>53
          </b></font>RepNo = <font color="#FF0000"><b>7
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
    
     <font color="#000080"><b>CASE IS </b></font>&gt; <font color="#FF0000"><b>53 </b></font><font color="#000080"><b>AND IS </b></font>&lt;= <font color="#FF0000"><b>62 
          </b></font>RepNo = <font color="#FF0000"><b>8
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
    
     <font color="#000080"><b>CASE IS </b></font>&gt; <font color="#FF0000"><b>62 </b></font><font color="#000080"><b>AND IS </b></font>&lt;= <font color="#FF0000"><b>72
          </b></font>RepNo = <font color="#FF0000"><b>8
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
          <font color="#000080"><b>GOSUB </b></font>LCD2
          RepNo = <font color="#FF0000"><b>1      
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
     <font color="#000080"><b>CASE IS </b></font>&gt; <font color="#FF0000"><b>72 </b></font><font color="#000080"><b>AND IS </b></font>&lt;= <font color="#FF0000"><b>81
          </b></font>RepNo = <font color="#FF0000"><b>8
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
          <font color="#000080"><b>GOSUB </b></font>LCD2
          RepNo = <font color="#FF0000"><b>2
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
    
     <font color="#000080"><b>CASE IS </b></font>&gt; <font color="#FF0000"><b>81 </b></font><font color="#000080"><b>AND IS </b></font>&lt;= <font color="#FF0000"><b>86
          </b></font>RepNo = <font color="#FF0000"><b>8
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
          <font color="#000080"><b>GOSUB </b></font>LCD2
          RepNo = <font color="#FF0000"><b>3
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
    
     <font color="#000080"><b>CASE IS </b></font>&gt; <font color="#FF0000"><b>86 </b></font><font color="#000080"><b>AND IS </b></font>&lt;= <font color="#FF0000"><b>91
          </b></font>RepNo = <font color="#FF0000"><b>8
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
          <font color="#000080"><b>GOSUB </b></font>LCD2
          RepNo = <font color="#FF0000"><b>4
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
    
     <font color="#000080"><b>CASE IS </b></font>&gt; <font color="#FF0000"><b>91 </b></font><font color="#000080"><b>AND IS </b></font>&lt;= <font color="#FF0000"><b>96
          </b></font>RepNo = <font color="#FF0000"><b>8
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
          <font color="#000080"><b>GOSUB </b></font>LCD2
          RepNo = <font color="#FF0000"><b>5
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
    
     <font color="#000080"><b>CASE IS </b></font>&gt; <font color="#FF0000"><b>96 </b></font><font color="#000080"><b>AND IS </b></font>&lt;= <font color="#FF0000"><b>100
          </b></font>RepNo = <font color="#FF0000"><b>8
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
          <font color="#000080"><b>GOSUB </b></font>LCD2
          RepNo = <font color="#FF0000"><b>6
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
    
     <font color="#000080"><b>CASE IS </b></font>&gt; <font color="#FF0000"><b>100 </b></font><font color="#000080"><b>AND IS </b></font>&lt;= <font color="#FF0000"><b>105
          </b></font>RepNo = <font color="#FF0000"><b>8
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
          <font color="#000080"><b>GOSUB </b></font>LCD2
          RepNo = <font color="#FF0000"><b>7
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
    
     <font color="#000080"><b>CASE IS </b></font>&gt; <font color="#FF0000"><b>105 </b></font><font color="#000080"><b>AND IS </b></font>&lt;= <font color="#FF0000"><b>110
          </b></font>RepNo = <font color="#FF0000"><b>8
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
          <font color="#000080"><b>GOSUB </b></font>LCD2
          RepNo = <font color="#FF0000"><b>8
          </b></font><font color="#000080"><b>GOSUB </b></font>RepLCD
    
     <font color="#000080"><b>CASE ELSE 
          LCDOUT </b></font><font color="#FF0000"><b>$FE</b></font>,<font color="#FF0000"><b>$C0</b></font>,<font color="#008000"><b>&quot;TOO RICH&quot;
    </b></font><font color="#000080"><b>END SELECT
    
    RETURN
    
    </b></font>RepLCD:
        <font color="#000080"><b>WHILE </b></font>RepNo &gt; <font color="#FF0000"><b>0
              </b></font><font color="#000080"><b>LCDOUT </b></font><font color="#FF0000"><b>255
              </b></font>RepNo = RepNo - <font color="#FF0000"><b>1
        </b></font><font color="#000080"><b>WEND
       </b></font><font color="#000080"><b>RETURN
    
    </b></font>LCD2:
        <font color="#000080"><b>LCDOUT </b></font><font color="#FF0000"><b>$FE</b></font>,<font color="#FF0000"><b>$C0
        </b></font><font color="#000080"><b>RETURN
        
    </b></font>

    Btw:
    Select case produces 100 words more!
    So, if you go with your IF..THENs, it will be approx. 882 words, but select case provides a clean look.
    Last edited by sayzer; - 3rd March 2008 at 17:11.
    "If the Earth were a single state, Istanbul would be its capital." Napoleon Bonaparte

Similar Threads

  1. Multiple PICS from Same Crystal?
    By WOZZY-2010 in forum General
    Replies: 2
    Last Post: - 6th February 2010, 16:18
  2. Multiple analog inputs ?
    By rngd in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 25th February 2008, 16:13
  3. Multiple PIC programming
    By Nicholas in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 8th May 2007, 00:47
  4. Multiple PIC's with 1 crystal
    By puma in forum Schematics
    Replies: 11
    Last Post: - 20th March 2007, 18:02
  5. Multiple IR LEDs from 1 port using transistor
    By belpe123 in forum General
    Replies: 3
    Last Post: - 20th May 2005, 23:07

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