Correct Pin 3 output to scale to the reduced comparator size.
This commit is contained in:
parent
6ff2791963
commit
77a8c62b78
6
DDS.cpp
6
DDS.cpp
|
@ -140,13 +140,13 @@ uint8_t DDS::getDutyCycle() {
|
|||
uint8_t phAng;
|
||||
#endif
|
||||
phAng = (accumulator >> ACCUMULATOR_BIT_SHIFT);
|
||||
int8_t position = pgm_read_byte_near(ddsSineTable + phAng)>>(8-COMPARATOR_BITS);
|
||||
int8_t position = pgm_read_byte_near(ddsSineTable + phAng); //>>(8-COMPARATOR_BITS);
|
||||
// Apply scaling and return
|
||||
int16_t scaled = position;
|
||||
// output = ((duty * amplitude) / 256) + 128
|
||||
// This keeps amplitudes centered around 50% duty
|
||||
scaled *= amplitude;
|
||||
scaled >>= 8;
|
||||
scaled += 128;
|
||||
scaled >>= 8+(8-COMPARATOR_BITS);
|
||||
scaled += 128>>(8-COMPARATOR_BITS);
|
||||
return scaled;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue