Mercurial > ~darius > hgwebdir.cgi > modulator
comparison modulator.c @ 20:6aaa9658df1e
Don't mark pulse active on slew up/down.
author | Daniel O'Connor <darius@dons.net.au> |
---|---|
date | Tue, 25 Feb 2025 15:46:03 +1030 |
parents | 2e14ccd1338a |
children | 3c713073dd0c |
comparison
equal
deleted
inserted
replaced
19:2e14ccd1338a | 20:6aaa9658df1e |
---|---|
223 memset(pulse_ctrl, 0, datalen); | 223 memset(pulse_ctrl, 0, datalen); |
224 idx = 0; | 224 idx = 0; |
225 | 225 |
226 // Up slew | 226 // Up slew |
227 for (uint16_t i = 0; i < slew1; i++) { | 227 for (uint16_t i = 0; i < slew1; i++) { |
228 ctrl[idx] |= PACTIVE; | |
229 data[idx++] = qtoi(qdiv(qmul(qint(dcofs), qint(i)), qint(slew1))); | 228 data[idx++] = qtoi(qdiv(qmul(qint(dcofs), qint(i)), qint(slew1))); |
230 } | 229 } |
231 for (uint16_t c = 0; c < ncode; c++) { | 230 for (uint16_t c = 0; c < ncode; c++) { |
232 if (c == 0) | 231 if (c == 0) |
233 bit1startup = idx; | 232 bit1startup = idx; |
282 } | 281 } |
283 } | 282 } |
284 | 283 |
285 // Down slew | 284 // Down slew |
286 for (uint16_t i = 0; i < slew2 + 1; i++) { | 285 for (uint16_t i = 0; i < slew2 + 1; i++) { |
287 ctrl[idx] |= PACTIVE; | |
288 data[idx++] = qtoi(qdiv(qmul(qint(dcofs), qint(slew2 - i)), qint(slew2))); | 286 data[idx++] = qtoi(qdiv(qmul(qint(dcofs), qint(slew2 - i)), qint(slew2))); |
289 } | 287 } |
290 | 288 |
291 data[idx++] = 0; | 289 data[idx++] = 0; |
292 ctrl[idx] = 0; | 290 ctrl[idx] = 0; |