16F1827 table not behaving as expected


Closed Thread
Results 1 to 19 of 19

Hybrid View

  1. #1
    Join Date
    Jul 2003
    Posts
    2,405


    Did you find this post helpful? Yes | No

    Default Re: 16F1827 table not behaving as expected

    You can save a ton of code space by not including all the zeros in the upper section. Give this a shot.
    Code:
    Measurement var byte
    dacdwell var word
    dacdwell = 0
     
    main:
      FOR Measurement = 0 TO 253    ' 254 total entries
          IF Measurement < 128 THEN ' all values with an index < 128 are 0's
             dacdwell = 0
             GOSUB Show
          ELSE
             GOSUB DwellTable
          ENDIF
      NEXT Measurement
     
    FIN:
      GOTO FIN
     
    DwellTable:
    IF Measurement > 191 THEN DwellTable2
    LOOKUP2 Measurement-128,_
      [$5161,$4c48,$47ce,$43d1,$403f,$3d09,$3a21,$377d,_ '128 - 135 1.5pps - 2.2pps
       $3513,$32dd,$30d4,$2ef3,$2d36,$2b99,$2a18,$28b1,_ '136 - 143 2.3pps - 3.0pps
       $2761,$2626,$24fe,$23e7,$22e1,$21e9,$20fe,$2020,_ '144 - 151 3.1pps - 3.8pps
       $1f4d,$1e85,$1dc6,$1d10,$1c63,$1bbe,$1b20,$1a89,_ '152 - 159 3.9pps - 4.6pps
       $19f9,$196e,$18ea,$186a,$17ef,$177a,$1708,$169b,_ '160 - 167 4.7pps - 5.4pps
       $1632,$15cc,$156a,$150c,$14b1,$1458,$1403,$13b0,_ '168 - 175 5.5pps - 6.2pps
       $1360,$1313,$12c8,$127f,$1238,$11f4,$11b1,$1170,_ '176 - 183 6.3pps - 7.0pps
       $1131,$10f4,$10b9,$107f,$1047,$1010,$0fda,$0fa6],dacdwell  '184 - 191 7.1pps - 7.8pps
    GOTO Show ' Show results
     
    DwellTable2:
    LOOKUP2 Measurement-192,_
      [$0f74,$0f42,$0f12,$0ee3,$0000,$0000,$0000,$0000,_ '192 - 199 7.9pps - 8.2pps & 900Hz w/ no mod
       $0000,$0000,$0000,$0000,$0000,$0000,$5161,$4c48,_ '200 - 207 900Hz w/no mod & 1.5pps - 1.6pps
       $47ce,$43d1,$403f,$3d09,$3a21,$377d,$3513,$32dd,_ '208 - 215 1.7pps - 2.5pps
       $30d4,$2ef3,$2d36,$2b99,$2a18,$28b1,$2761,$2626,_ '216 - 223 2.6pps - 3.3pps
       $24fe,$23e7,$22e1,$21e9,$20fe,$2020,$1f4d,$1e85,_ '224 - 231 3.4pps - 4.1pps
       $1dc6,$1d10,$1c63,$1bbe,$1b20,$1a89,$19f9,$196e,_ '232 - 239 4.2pps - 4.9pps
       $18ea,$186a,$17ef,$177a,$1708,$169b,$1632,$15cc,_ '240 - 247 5.0pps - 5.7pps
       $156a,$150c,$14b1,$1458,$1403,$13b0],dacdwell     '248 - 253 5.8pps - 6.3pps 
     
    Show:
       serout2 portb.5,396, ["Measurement = ", DEC measurement, 13, 10]
       serout2 portb.5,396, ["DacDwell = ", ISHEX4 DacDwell, 13, 10]
       serout2 portb.5,396,[13, 10] '
       pause 1000
       return
     
       end
    Last edited by Bruce; - 2nd April 2011 at 23:52.
    Regards,

    -Bruce
    tech at rentron.com
    http://www.rentron.com

  2. #2
    Join Date
    Oct 2005
    Location
    Pinckney, Michigan
    Posts
    91


    Did you find this post helpful? Yes | No

    Default Re: 16F1827 table not behaving as expected

    Quote Originally Posted by Bruce View Post
    You can save a ton of code space by not including all the zeros in the upper section. Give this a shot.
    Code:
    Measurement var byte
    dacdwell var word
    dacdwell = 0
     
    main:
      FOR Measurement = 0 TO 253    ' 254 total entries
          IF Measurement < 128 THEN ' all values with an index < 128 are 0's
             dacdwell = 0
             GOSUB Show
          ELSE
             GOSUB DwellTable
          ENDIF
      NEXT Measurement
     
    FIN:
      GOTO FIN
     
    DwellTable:
    IF Measurement > 191 THEN DwellTable2
    LOOKUP2 Measurement-128,_
      [$5161,$4c48,$47ce,$43d1,$403f,$3d09,$3a21,$377d,_ '128 - 135 1.5pps - 2.2pps
       $3513,$32dd,$30d4,$2ef3,$2d36,$2b99,$2a18,$28b1,_ '136 - 143 2.3pps - 3.0pps
       $2761,$2626,$24fe,$23e7,$22e1,$21e9,$20fe,$2020,_ '144 - 151 3.1pps - 3.8pps
       $1f4d,$1e85,$1dc6,$1d10,$1c63,$1bbe,$1b20,$1a89,_ '152 - 159 3.9pps - 4.6pps
       $19f9,$196e,$18ea,$186a,$17ef,$177a,$1708,$169b,_ '160 - 167 4.7pps - 5.4pps
       $1632,$15cc,$156a,$150c,$14b1,$1458,$1403,$13b0,_ '168 - 175 5.5pps - 6.2pps
       $1360,$1313,$12c8,$127f,$1238,$11f4,$11b1,$1170,_ '176 - 183 6.3pps - 7.0pps
       $1131,$10f4,$10b9,$107f,$1047,$1010,$0fda,$0fa6],dacdwell  '184 - 191 7.1pps - 7.8pps
    GOTO Show ' Show results
     
    DwellTable2:
    LOOKUP2 Measurement-192,_
      [$0f74,$0f42,$0f12,$0ee3,$0000,$0000,$0000,$0000,_ '192 - 199 7.9pps - 8.2pps & 900Hz w/ no mod
       $0000,$0000,$0000,$0000,$0000,$0000,$5161,$4c48,_ '200 - 207 900Hz w/no mod & 1.5pps - 1.6pps
       $47ce,$43d1,$403f,$3d09,$3a21,$377d,$3513,$32dd,_ '208 - 215 1.7pps - 2.5pps
       $30d4,$2ef3,$2d36,$2b99,$2a18,$28b1,$2761,$2626,_ '216 - 223 2.6pps - 3.3pps
       $24fe,$23e7,$22e1,$21e9,$20fe,$2020,$1f4d,$1e85,_ '224 - 231 3.4pps - 4.1pps
       $1dc6,$1d10,$1c63,$1bbe,$1b20,$1a89,$19f9,$196e,_ '232 - 239 4.2pps - 4.9pps
       $18ea,$186a,$17ef,$177a,$1708,$169b,$1632,$15cc,_ '240 - 247 5.0pps - 5.7pps
       $156a,$150c,$14b1,$1458,$1403,$13b0],dacdwell     '248 - 253 5.8pps - 6.3pps 
     
    Show:
       serout2 portb.5,396, ["Measurement = ", DEC measurement, 13, 10]
       serout2 portb.5,396, ["DacDwell = ", ISHEX4 DacDwell, 13, 10]
       serout2 portb.5,396,[13, 10] '
       pause 1000
       return
     
       end
    Hi Bruce

    I was trying to implement something like that earlier as part of trying to fix the table issue. Now that the tables are fixed it'll be nice to loose all the leading zeroes!

    This project has been challenging but interesting.

    It's an audible annunciator with a variable sweep tone burst to indicate urgency, with a variable frequency amplitude modulator.

    All scaled to fit within the table limits of PBP!

    Thanks for the help.

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