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.