;Developed by David V. Fansler ;January 2007 ;Permission for non-commercial uses permitted. ;For commercial uses, please contact the author at www.dv-fansler.com ; ;S_Curve_Ctr contains the current count of 32.5us intervals since the last zero crossing. ;The returned value (in W) is then subtracted from the received desired light level (0-255). ;Following the subtraction, if C =1 then turn on the Triac. ;Set the org for anywhere desired in your program space. ;This table crosses a 256 boundry and must use the code shown to modify PCLATH - syntax is for ;TechTools CVASM16 V.5.8 PIC assembler - may need to be modified for MicroChips's MLAB. org 0100h S_Curve movlw S_Curve_Start < ;move high byte of PC into W movwf PCLATH ;and into PCLATH movf S_Curve_Ctr,W ;get step # into W addlw S_Curve_Start > btfsc C incf PCLATH,F movwf PCL ;S Curve values are in reverse order since an low value input desires the triac ;to turn on late in the 1/2 wave form. S_Curve_Start retlw 255 ;255 retlw 254 ;254 retlw 254 ;253 retlw 254 ;252 retlw 253 ;251 retlw 253 ;250 retlw 253 ;249 retlw 253 ;248 retlw 253 ;247 retlw 253 ;246 retlw 253 ;245 retlw 253 ;244 retlw 253 ;243 retlw 253 ;242 retlw 253 ;241 retlw 253 ;240 retlw 253 ;239 retlw 253 ;238 retlw 252 ;237 retlw 252 ;236 retlw 252 ;235 retlw 252 ;234 retlw 252 ;233 retlw 252 ;232 retlw 252 ;231 retlw 252 ;230 retlw 251 ;229 retlw 251 ;228 retlw 251 ;227 retlw 251 ;226 retlw 251 ;225 retlw 251 ;224 retlw 251 ;223 retlw 251 ;222 retlw 251 ;221 retlw 251 ;220 retlw 251 ;219 retlw 251 ;218 retlw 251 ;217 retlw 249 ;216 retlw 249 ;215 retlw 249 ;214 retlw 249 ;213 retlw 249 ;212 retlw 248 ;211 retlw 248 ;210 retlw 248 ;209 retlw 248 ;208 retlw 248 ;207 retlw 247 ;206 retlw 247 ;205 retlw 247 ;204 retlw 246 ;203 retlw 246 ;202 retlw 245 ;201 retlw 244 ;200 retlw 243 ;199 retlw 244 ;198 retlw 241 ;197 retlw 238 ;196 retlw 236 ;195 retlw 234 ;194 retlw 230 ;193 retlw 228 ;192 retlw 226 ;191 retlw 226 ;190 retlw 224 ;189 retlw 223 ;187 retlw 222 ;186 retlw 221 ;185 retlw 219 ;184 retlw 219 ;183 retlw 218 ;182 retlw 217 ;181 retlw 216 ;180 retlw 215 ;179 retlw 214 ;178 retlw 213 ;177 retlw 212 ;176 retlw 211 ;175 retlw 210 ;174 retlw 209 ;173 retlw 207 ;172 retlw 206 ;171 retlw 206 ;170 retlw 204 ;169 retlw 203 ;168 retlw 201 ;167 retlw 198 ;166 retlw 196 ;165 retlw 195 ;164 retlw 193 ;163 retlw 191 ;162 retlw 189 ;161 retlw 188 ;160 retlw 187 ;159 retlw 186 ;158 retlw 185 ;157 retlw 184 ;156 retlw 183 ;155 retlw 181 ;154 retlw 179 ;153 retlw 178 ;152 retlw 176 ;151 retlw 175 ;150 retlw 173 ;149 retlw 170 ;148 retlw 169 ;147 retlw 168 ;146 retlw 166 ;145 retlw 164 ;144 retlw 163 ;143 retlw 162 ;142 retlw 160 ;141 retlw 158 ;140 retlw 156 ;139 retlw 155 ;138 retlw 154 ;137 retlw 152 ;136 retlw 150 ;135 retlw 148 ;134 retlw 147 ;133 retlw 146 ;132 retlw 144 ;131 retlw 142 ;130 retlw 141 ;129 retlw 140 ;128 retlw 138 ;127 retlw 137 ;126 retlw 136 ;125 retlw 134 ;124 retlw 132 ;123 retlw 130 ;122 retlw 129 ;121 retlw 128 ;120 retlw 127 ;119 retlw 125 ;118 retlw 124 ;117 retlw 122 ;116 retlw 120 ;115 retlw 118 ;114 retlw 117 ;113 retlw 115 ;112 retlw 114 ;111 retlw 113 ;110 retlw 113 ;109 retlw 112 ;108 retlw 111 ;107 retlw 110 ;106 retlw 109 ;105 retlw 108 ;104 retlw 107 ;103 retlw 106 ;102 retlw 105 ;101 retlw 104 ;100 retlw 103 ;99 retlw 102 ;98 retlw 101 ;97 retlw 100 ;96 retlw 99 ;95 retlw 98 ;94 retlw 97 ;93 retlw 96 ;92 retlw 95 ;91 retlw 94 ;90 retlw 93 ;89 retlw 92 ;88 retlw 90 ;87 retlw 88 ;86 retlw 87 ;85 retlw 86 ;84 retlw 85 ;83 retlw 83 ;82 retlw 82 ;81 retlw 81 ;80 retlw 80 ;79 retlw 79 ;78 retlw 78 ;77 retlw 77 ;76 retlw 76 ;75 retlw 75 ;74 retlw 74 ;73 retlw 73 ;72 retlw 72 ;71 retlw 70 ;70 retlw 69 ;69 retlw 68 ;68 retlw 67 ;67 retlw 66 ;66 retlw 65 ;65 retlw 64 ;64 retlw 63 ;63 retlw 62 ;62 retlw 61 ;61 retlw 60 ;60 retlw 59 ;59 retlw 58 ;58 retlw 57 ;57 retlw 56 ;56 retlw 55 ;55 retlw 54 ;54 retlw 53 ;53 retlw 52 ;52 retlw 51 ;51 retlw 50 ;50 retlw 49 ;49 retlw 48 ;48 retlw 47 ;47 retlw 46 ;46 retlw 45 ;45 retlw 44 ;44 retlw 43 ;43 retlw 42 ;42 retlw 41 ;41 retlw 40 ;40 retlw 39 ;39 retlw 38 ;38 retlw 37 ;37 retlw 36 ;36 retlw 35 ;35 retlw 34 ;34 retlw 33 ;33 retlw 32 ;32 retlw 31 ;31 retlw 30 ;30 retlw 29 ;29 retlw 28 ;28 retlw 27 ;27 retlw 26 ;26 retlw 25 ;25 retlw 24 ;24 retlw 23 ;23 retlw 22 ;22 retlw 21 ;21 retlw 20 ;20 retlw 19 ;19 retlw 18 ;18 retlw 17 ;17 retlw 16 ;16 retlw 15 ;15 retlw 14 ;14 retlw 13 ;13 retlw 12 ;12 retlw 11 ;11 retlw 10 ;10 retlw 9 ;9 retlw 8 ;8 retlw 7 ;7 retlw 6 ;6 retlw 5 ;5 retlw 4 ;4 retlw 3 ;3 retlw 2 ;2 retlw 1 ;1 retlw 0 ;0 retlw 0 ;end of 256 steps retlw 0 ;end of 256 steps