Skip to content

Commit 7c5c45f

Browse files
authored
Merge pull request #73 from mxmxmx/1.3.4dev
[OC] 1.3.4
2 parents c404ac1 + 4006f99 commit 7c5c45f

16 files changed

+555
-79
lines changed

software/o_c_REV/APP_A_SEQ.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1513,7 +1513,7 @@ public:
15131513
break;
15141514
case PENDULUM1:
15151515
case BROWNIAN:
1516-
if (BROWNIAN == get_direction()) {
1516+
if (BROWNIAN == _direction) {
15171517
// Compare Brownian probability and reverse direction if needed
15181518
int16_t brown_prb = get_brownian_probability();
15191519

software/o_c_REV/APP_DQ.ino

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,12 @@
3636
#include "OC_scale_edit.h"
3737
#include "OC_strings.h"
3838

39+
#ifdef BUCHLA_4U
40+
#define DQ_OFFSET_X 22
41+
#else
42+
#define DQ_OFFSET_X 47
43+
#endif
44+
3945
const uint8_t NUMCHANNELS = 2;
4046
const uint8_t NUM_SCALE_SLOTS = 4;
4147

@@ -1482,15 +1488,15 @@ void DQ_QuantizerChannel::RenderScreensaver(weegfx::coord_t start_x) const {
14821488
menu::DrawMask<true, 16, 8, 1>(start_x + 58, 1, get_shift_register(), get_turing_display_length());
14831489
break;
14841490
default: {
1485-
graphics.setPixel(start_x + 47 - 16, 4);
1491+
graphics.setPixel(start_x + DQ_OFFSET_X - 16, 4);
14861492
int32_t cv = OC::ADC::value(static_cast<ADC_CHANNEL>(source));
14871493
cv = (cv * 20 + 2047) >> 11;
14881494
if (cv < 0)
1489-
graphics.drawRect(start_x + 47 - 16 + cv, 6, -cv, 2);
1495+
graphics.drawRect(start_x + DQ_OFFSET_X - 16 + cv, 6, -cv, 2);
14901496
else if (cv > 0)
1491-
graphics.drawRect(start_x + 47 - 16, 6, cv, 2);
1497+
graphics.drawRect(start_x + DQ_OFFSET_X - 16, 6, cv, 2);
14921498
else
1493-
graphics.drawRect(start_x + 47 - 16, 6, 1, 2);
1499+
graphics.drawRect(start_x + DQ_OFFSET_X - 16, 6, 1, 2);
14941500
}
14951501
break;
14961502
}

software/o_c_REV/APP_ENVGEN.ino

Lines changed: 50 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Copyright (c) 2016 Patrick Dowling, Tim Churches
21
//
32
// Initial app implementation: Patrick Dowling ([email protected])
43
// Modifications by: Tim Churches ([email protected])
@@ -316,33 +315,34 @@ public:
316315
return 0;
317316
}
318317

319-
inline void apply_cv_mapping(EnvelopeSettings cv_setting, const int32_t cvs[ADC_CHANNEL_LAST], int32_t segments[kMaxSegments + kEuclideanParams + kDelayParams + kAmplitudeParams]) {
318+
inline void apply_cv_mapping(EnvelopeSettings cv_setting, const int32_t cvs[ADC_CHANNEL_LAST], int32_t segments[CV_MAPPING_LAST]) {
319+
// segments is indexed directly with CVMapping enum values
320320
int mapping = values_[cv_setting];
321321
switch (mapping) {
322322
case CV_MAPPING_SEG1:
323323
case CV_MAPPING_SEG2:
324324
case CV_MAPPING_SEG3:
325325
case CV_MAPPING_SEG4:
326-
segments[mapping - CV_MAPPING_SEG1] += (cvs[cv_setting - ENV_SETTING_CV1] * 65536) >> 12;
326+
segments[mapping] += (cvs[cv_setting - ENV_SETTING_CV1] * 65536) >> 12;
327327
break;
328328
case CV_MAPPING_ADR:
329-
segments[CV_MAPPING_SEG1 - CV_MAPPING_SEG1] += (cvs[cv_setting - ENV_SETTING_CV1] * 65536) >> 12;
330-
segments[CV_MAPPING_SEG2 - CV_MAPPING_SEG1] += (cvs[cv_setting - ENV_SETTING_CV1] * 65536) >> 12;
331-
segments[CV_MAPPING_SEG4 - CV_MAPPING_SEG1] += (cvs[cv_setting - ENV_SETTING_CV1] * 65536) >> 12;
329+
segments[CV_MAPPING_SEG1] += (cvs[cv_setting - ENV_SETTING_CV1] * 65536) >> 12;
330+
segments[CV_MAPPING_SEG2] += (cvs[cv_setting - ENV_SETTING_CV1] * 65536) >> 12;
331+
segments[CV_MAPPING_SEG4] += (cvs[cv_setting - ENV_SETTING_CV1] * 65536) >> 12;
332332
break;
333333
case CV_MAPPING_EUCLIDEAN_LENGTH:
334334
case CV_MAPPING_EUCLIDEAN_FILL:
335335
case CV_MAPPING_EUCLIDEAN_OFFSET:
336-
segments[mapping - CV_MAPPING_SEG1] += cvs[cv_setting - ENV_SETTING_CV1] >> 6;
336+
segments[mapping] += cvs[cv_setting - ENV_SETTING_CV1] >> 6;
337337
break;
338338
case CV_MAPPING_DELAY_MSEC:
339-
segments[mapping - CV_MAPPING_SEG1] += cvs[cv_setting - ENV_SETTING_CV1] >> 2;
339+
segments[mapping] += cvs[cv_setting - ENV_SETTING_CV1] >> 2;
340340
break;
341341
case CV_MAPPING_AMPLITUDE:
342-
segments[mapping - CV_MAPPING_SEG1] += cvs[cv_setting - ENV_SETTING_CV1] << 5 ;
342+
segments[mapping] += cvs[cv_setting - ENV_SETTING_CV1] << 5 ;
343343
break;
344344
case CV_MAPPING_MAX_LOOPS:
345-
segments[mapping - CV_MAPPING_SEG1] += cvs[cv_setting - ENV_SETTING_CV1] << 2 ;
345+
segments[mapping] += cvs[cv_setting - ENV_SETTING_CV1] << 2 ;
346346
break;
347347
default:
348348
break;
@@ -419,53 +419,55 @@ public:
419419

420420
template <DAC_CHANNEL dac_channel>
421421
void Update(uint32_t triggers, uint32_t internal_trigger_mask, const int32_t cvs[ADC_CHANNEL_LAST]) {
422-
int32_t s[kMaxSegments + kEuclideanParams + kDelayParams + kAmplitudeParams];
423-
s[0] = SCALE8_16(static_cast<int32_t>(get_segment_value(0)));
424-
s[1] = SCALE8_16(static_cast<int32_t>(get_segment_value(1)));
425-
s[2] = SCALE8_16(static_cast<int32_t>(get_segment_value(2)));
426-
s[3] = SCALE8_16(static_cast<int32_t>(get_segment_value(3)));
427-
s[4] = static_cast<int32_t>(get_euclidean_length());
428-
s[5] = static_cast<int32_t>(get_euclidean_fill());
429-
s[6] = static_cast<int32_t>(get_euclidean_offset());
430-
s[7] = get_trigger_delay_ms();
431-
s[8] = get_amplitude();
432-
s[9] = get_max_loops();
422+
int32_t s[CV_MAPPING_LAST];
423+
s[CV_MAPPING_NONE] = 0; // unused, but needs a placeholder to align with enum CVMapping
424+
s[CV_MAPPING_SEG1] = SCALE8_16(static_cast<int32_t>(get_segment_value(0)));
425+
s[CV_MAPPING_SEG2] = SCALE8_16(static_cast<int32_t>(get_segment_value(1)));
426+
s[CV_MAPPING_SEG3] = SCALE8_16(static_cast<int32_t>(get_segment_value(2)));
427+
s[CV_MAPPING_SEG4] = SCALE8_16(static_cast<int32_t>(get_segment_value(3)));
428+
s[CV_MAPPING_ADR] = 0; // unused, but needs a placeholder to align with enum CVMapping
429+
s[CV_MAPPING_EUCLIDEAN_LENGTH] = static_cast<int32_t>(get_euclidean_length());
430+
s[CV_MAPPING_EUCLIDEAN_FILL] = static_cast<int32_t>(get_euclidean_fill());
431+
s[CV_MAPPING_EUCLIDEAN_OFFSET] = static_cast<int32_t>(get_euclidean_offset());
432+
s[CV_MAPPING_DELAY_MSEC] = get_trigger_delay_ms();
433+
s[CV_MAPPING_AMPLITUDE] = get_amplitude();
434+
s[CV_MAPPING_MAX_LOOPS] = get_max_loops();
433435

434436
apply_cv_mapping(ENV_SETTING_CV1, cvs, s);
435437
apply_cv_mapping(ENV_SETTING_CV2, cvs, s);
436438
apply_cv_mapping(ENV_SETTING_CV3, cvs, s);
437439
apply_cv_mapping(ENV_SETTING_CV4, cvs, s);
438440

439-
s[0] = USAT16(s[0]);
440-
s[1] = USAT16(s[1]);
441-
s[2] = USAT16(s[2]);
442-
s[3] = USAT16(s[3]);
443-
CONSTRAIN(s[4], 0, 31);
444-
CONSTRAIN(s[5], 0, 32);
445-
CONSTRAIN(s[6], 0, 32);
446-
CONSTRAIN(s[7], 0, 65535);
447-
CONSTRAIN(s[8], 0, 65535);
448-
CONSTRAIN(s[9], 0, 65535);
441+
s[CV_MAPPING_SEG1] = USAT16(s[CV_MAPPING_SEG1]);
442+
s[CV_MAPPING_SEG2] = USAT16(s[CV_MAPPING_SEG2]);
443+
s[CV_MAPPING_SEG3] = USAT16(s[CV_MAPPING_SEG3]);
444+
s[CV_MAPPING_SEG4] = USAT16(s[CV_MAPPING_SEG4]);
445+
CONSTRAIN(s[CV_MAPPING_EUCLIDEAN_LENGTH], 0, 31);
446+
CONSTRAIN(s[CV_MAPPING_EUCLIDEAN_FILL], 0, 32);
447+
CONSTRAIN(s[CV_MAPPING_EUCLIDEAN_OFFSET], 0, 32);
448+
CONSTRAIN(s[CV_MAPPING_DELAY_MSEC], 0, 65535);
449+
CONSTRAIN(s[CV_MAPPING_AMPLITUDE], 0, 65535);
450+
CONSTRAIN(s[CV_MAPPING_MAX_LOOPS], 0, 65535);
449451

450452
EnvelopeType type = get_type();
451453
switch (type) {
452-
case ENV_TYPE_AD: env_.set_ad(s[0], s[1], 0, 0); break;
453-
case ENV_TYPE_ADSR: env_.set_adsr(s[0], s[1], s[2]>>1, s[3]); break;
454-
case ENV_TYPE_ADR: env_.set_adr(s[0], s[1], s[2]>>1, s[3], 0, 0 ); break;
455-
case ENV_TYPE_AR: env_.set_ar(s[0], s[1]); break;
456-
case ENV_TYPE_ADSAR: env_.set_adsar(s[0], s[1], s[2]>>1, s[3]); break;
457-
case ENV_TYPE_ADAR: env_.set_adar(s[0], s[1], s[2]>>1, s[3], 0, 0); break;
458-
case ENV_TYPE_ADL2: env_.set_ad(s[0], s[1], 0, 2); break;
459-
case ENV_TYPE_ADRL3: env_.set_adr(s[0], s[1], s[2]>>1, s[3], 0, 3); break;
460-
case ENV_TYPE_ADL2R: env_.set_adr(s[0], s[1], s[2]>>1, s[3], 0, 2); break;
461-
case ENV_TYPE_ADARL4: env_.set_adar(s[0], s[1], s[2]>>1, s[3], 0, 4); break;
462-
case ENV_TYPE_ADAL2R: env_.set_adar(s[0], s[1], s[2]>>1, s[3], 1, 3); break; // was 2, 4
454+
case ENV_TYPE_AD: env_.set_ad(s[CV_MAPPING_SEG1], s[CV_MAPPING_SEG2], 0, 0); break;
455+
case ENV_TYPE_ADSR: env_.set_adsr(s[CV_MAPPING_SEG1], s[CV_MAPPING_SEG2], s[CV_MAPPING_SEG3]>>1, s[CV_MAPPING_SEG4]); break;
456+
case ENV_TYPE_ADR: env_.set_adr(s[CV_MAPPING_SEG1], s[CV_MAPPING_SEG2], s[CV_MAPPING_SEG3]>>1, s[CV_MAPPING_SEG4], 0, 0 ); break;
457+
case ENV_TYPE_AR: env_.set_ar(s[CV_MAPPING_SEG1], s[CV_MAPPING_SEG2]); break;
458+
case ENV_TYPE_ADSAR: env_.set_adsar(s[CV_MAPPING_SEG1], s[CV_MAPPING_SEG2], s[CV_MAPPING_SEG3]>>1, s[CV_MAPPING_SEG4]); break;
459+
case ENV_TYPE_ADAR: env_.set_adar(s[CV_MAPPING_SEG1], s[CV_MAPPING_SEG2], s[CV_MAPPING_SEG3]>>1, s[CV_MAPPING_SEG4], 0, 0); break;
460+
case ENV_TYPE_ADL2: env_.set_ad(s[CV_MAPPING_SEG1], s[CV_MAPPING_SEG2], 0, 2); break;
461+
case ENV_TYPE_ADRL3: env_.set_adr(s[CV_MAPPING_SEG1], s[CV_MAPPING_SEG2], s[CV_MAPPING_SEG3]>>1, s[CV_MAPPING_SEG4], 0, 3); break;
462+
case ENV_TYPE_ADL2R: env_.set_adr(s[CV_MAPPING_SEG1], s[CV_MAPPING_SEG2], s[CV_MAPPING_SEG3]>>1, s[CV_MAPPING_SEG4], 0, 2); break;
463+
case ENV_TYPE_ADARL4: env_.set_adar(s[CV_MAPPING_SEG1], s[CV_MAPPING_SEG2], s[CV_MAPPING_SEG3]>>1, s[CV_MAPPING_SEG4], 0, 4); break;
464+
case ENV_TYPE_ADAL2R: env_.set_adar(s[CV_MAPPING_SEG1], s[CV_MAPPING_SEG2], s[CV_MAPPING_SEG3]>>1, s[CV_MAPPING_SEG4], 1, 3); break; // was 2, 4
463465
default:
464466
break;
465467
}
466468

467469
// set the amplitude
468-
env_.set_amplitude(s[8], is_amplitude_sampled()) ;
470+
env_.set_amplitude(s[CV_MAPPING_AMPLITUDE], is_amplitude_sampled()) ;
469471

470472
if (type != last_type_) {
471473
last_type_ = type;
@@ -488,7 +490,7 @@ public:
488490
env_.set_release_time_multiplier(get_release_time_multiplier());
489491

490492
// set the looping envelope maximum number of loops
491-
env_.set_max_loops(s[9]);
493+
env_.set_max_loops(s[CV_MAPPING_MAX_LOOPS]);
492494

493495
int trigger_input = get_trigger_input();
494496
bool triggered = false;
@@ -507,9 +509,9 @@ public:
507509
trigger_display_.Update(1, triggered || gate_raised_);
508510

509511
if (triggered) ++euclidean_counter_;
510-
uint8_t euclidean_length = static_cast<uint8_t>(s[4]);
511-
uint8_t euclidean_fill = static_cast<uint8_t>(s[5]);
512-
uint8_t euclidean_offset = static_cast<uint8_t>(s[6]);
512+
uint8_t euclidean_length = static_cast<uint8_t>(s[CV_MAPPING_EUCLIDEAN_LENGTH]);
513+
uint8_t euclidean_fill = static_cast<uint8_t>(s[CV_MAPPING_EUCLIDEAN_FILL]);
514+
uint8_t euclidean_offset = static_cast<uint8_t>(s[CV_MAPPING_EUCLIDEAN_OFFSET]);
513515

514516
// Process Euclidean pattern reset
515517
uint8_t euclidean_reset_trigger_input = get_euclidean_reset_trigger_input();
@@ -534,7 +536,7 @@ public:
534536
if (triggered) {
535537
TriggerDelayMode delay_mode = get_trigger_delay_mode();
536538
// uint32_t delay = get_trigger_delay_ms() * 1000U;
537-
uint32_t delay = static_cast<uint32_t>(s[7] * 1000U);
539+
uint32_t delay = static_cast<uint32_t>(s[CV_MAPPING_DELAY_MSEC] * 1000U);
538540
if (delay_mode && delay) {
539541
triggered = false;
540542
if (TRIGGER_DELAY_QUEUE == delay_mode) {

software/o_c_REV/APP_H1200.ino

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1045,11 +1045,11 @@ void H1200_handleButtonEvent(const UI::Event &event) {
10451045
if (UI::EVENT_BUTTON_PRESS == event.type) {
10461046
switch (event.control) {
10471047
case OC::CONTROL_BUTTON_UP:
1048-
if (h1200_settings.change_value(H1200_SETTING_INVERSION, 1))
1048+
if (h1200_settings.change_value(H1200_SETTING_OCTAVE, 1))
10491049
h1200_state.force_update();
10501050
break;
10511051
case OC::CONTROL_BUTTON_DOWN:
1052-
if (h1200_settings.change_value(H1200_SETTING_INVERSION, -1))
1052+
if (h1200_settings.change_value(H1200_SETTING_OCTAVE, -1))
10531053
h1200_state.force_update();
10541054
break;
10551055
case OC::CONTROL_BUTTON_L:
@@ -1070,7 +1070,7 @@ void H1200_handleButtonEvent(const UI::Event &event) {
10701070
void H1200_handleEncoderEvent(const UI::Event &event) {
10711071

10721072
if (OC::CONTROL_ENCODER_L == event.control) {
1073-
if (h1200_settings.change_value(H1200_SETTING_ROOT_OFFSET, event.value))
1073+
if (h1200_settings.change_value(H1200_SETTING_INVERSION, event.value))
10741074
h1200_state.force_update();
10751075
} else if (OC::CONTROL_ENCODER_R == event.control) {
10761076
if (h1200_state.cursor.editing()) {

software/o_c_REV/APP_QQ.ino

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,13 @@
3939
#include "OC_scale_edit.h"
4040
#include "OC_strings.h"
4141

42+
43+
#ifdef BUCHLA_4U
44+
#define QQ_OFFSET_X 20
45+
#else
46+
#define QQ_OFFSET_X 31
47+
#endif
48+
4249
enum ChannelSetting {
4350
CHANNEL_SETTING_SCALE,
4451
CHANNEL_SETTING_ROOT,
@@ -992,6 +999,7 @@ public:
992999
*settings++ = CHANNEL_SETTING_CLKDIV;
9931000
*settings++ = CHANNEL_SETTING_DELAY;
9941001
}
1002+
*settings++ = CHANNEL_SETTING_OCTAVE;
9951003
*settings++ = CHANNEL_SETTING_TRANSPOSE;
9961004
*settings++ = CHANNEL_SETTING_FINE;
9971005

@@ -1489,15 +1497,15 @@ void QuantizerChannel::RenderScreensaver(weegfx::coord_t start_x) const {
14891497
// menu::DrawMask<true, 8, 8, 1>(start_x + 31, 1, get_int_seq_register(), 8);
14901498
break;
14911499
default: {
1492-
graphics.setPixel(start_x + 31 - 16, 4);
1500+
graphics.setPixel(start_x + QQ_OFFSET_X - 16, 4);
14931501
int32_t cv = OC::ADC::value(static_cast<ADC_CHANNEL>(source));
14941502
cv = (cv * 24 + 2047) >> 12;
14951503
if (cv < 0)
1496-
graphics.drawRect(start_x + 31 - 16 + cv, 6, -cv, 2);
1504+
graphics.drawRect(start_x + QQ_OFFSET_X - 16 + cv, 6, -cv, 2);
14971505
else if (cv > 0)
1498-
graphics.drawRect(start_x + 31 - 16, 6, cv, 2);
1506+
graphics.drawRect(start_x + QQ_OFFSET_X - 16, 6, cv, 2);
14991507
else
1500-
graphics.drawRect(start_x + 31 - 16, 6, 1, 2);
1508+
graphics.drawRect(start_x + QQ_OFFSET_X - 16, 6, 1, 2);
15011509
}
15021510
break;
15031511
}

software/o_c_REV/OC_DAC.cpp

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
*
3434
*/
3535

36-
#include <SPIFIFO.h>
36+
#include "util/util_SPIFIFO.h"
3737
#include "OC_DAC.h"
3838
#include "OC_gpio.h"
3939
#include "OC_options.h"
@@ -42,7 +42,6 @@
4242
#include "OC_autotune.h"
4343

4444
#define SPICLOCK_30MHz (SPI_CTAR_PBR(0) | SPI_CTAR_BR(0) | SPI_CTAR_DBR) //(60 / 2) * ((1+1)/2) = 30 MHz (= 24MHz, when F_BUS == 48000000)
45-
//#define DAC8564 // <-- uncomment, if using DAC8564
4645

4746
namespace OC {
4847

@@ -207,7 +206,11 @@ uint8_t DAC::DAC_scaling[DAC_CHANNEL_LAST];
207206
}; // namespace OC
208207

209208
void set8565_CHA(uint32_t data) {
209+
#ifdef BUCHLA_cOC
210+
uint32_t _data = data;
211+
#else
210212
uint32_t _data = OC::DAC::MAX_VALUE - data;
213+
#endif
211214
#ifdef FLIP_180
212215
SPIFIFO.write(0b00010110, SPI_CONTINUE);
213216
#else
@@ -219,8 +222,11 @@ void set8565_CHA(uint32_t data) {
219222
}
220223

221224
void set8565_CHB(uint32_t data) {
225+
#ifdef BUCHLA_cOC
226+
uint32_t _data = data;
227+
#else
222228
uint32_t _data = OC::DAC::MAX_VALUE - data;
223-
229+
#endif
224230
#ifdef FLIP_180
225231
SPIFIFO.write(0b00010100, SPI_CONTINUE);
226232
#else
@@ -232,8 +238,11 @@ void set8565_CHB(uint32_t data) {
232238
}
233239

234240
void set8565_CHC(uint32_t data) {
241+
#ifdef BUCHLA_cOC
242+
uint32_t _data = data;
243+
#else
235244
uint32_t _data = OC::DAC::MAX_VALUE - data;
236-
245+
#endif
237246
#ifdef FLIP_180
238247
SPIFIFO.write(0b00010010, SPI_CONTINUE);
239248
#else
@@ -245,8 +254,11 @@ void set8565_CHC(uint32_t data) {
245254
}
246255

247256
void set8565_CHD(uint32_t data) {
257+
#ifdef BUCHLA_cOC
258+
uint32_t _data = data;
259+
#else
248260
uint32_t _data = OC::DAC::MAX_VALUE - data;
249-
261+
#endif
250262
#ifdef FLIP_180
251263
SPIFIFO.write(0b00010000, SPI_CONTINUE);
252264
#else

software/o_c_REV/OC_calibration.ino

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,12 @@
1010

1111
using OC::DAC;
1212

13+
#ifdef BUCHLA_cOC
14+
static constexpr uint16_t DAC_OFFSET = 0; // DAC offset, initial approx., ish (Easel card)
15+
#else
1316
static constexpr uint16_t DAC_OFFSET = 4890; // DAC offset, initial approx., ish --> -3.5V to 6V
17+
#endif
18+
1419
#ifdef BUCHLA_4U
1520
static constexpr uint16_t _ADC_OFFSET = (uint16_t)((float)pow(2,OC::ADC::kAdcResolution)*1.0f); // ADC offset @3.3V
1621
#else
@@ -28,10 +33,18 @@ bool calibration_data_loaded = false;
2833
const OC::CalibrationData kCalibrationDefaults = {
2934
// DAC
3035
{ {
36+
#ifdef BUCHLA_cOC
37+
{197, 6634, 13083, 19517, 25966, 32417, 38850, 45301, 51733, 58180, 64400},
38+
{197, 6634, 13083, 19517, 25966, 32417, 38850, 45301, 51733, 58180, 64400},
39+
{197, 6634, 13083, 19517, 25966, 32417, 38850, 45301, 51733, 58180, 64400},
40+
{197, 6634, 13083, 19517, 25966, 32417, 38850, 45301, 51733, 58180, 64400}
41+
#else
3142
{0, 6553, 13107, 19661, 26214, 32768, 39321, 45875, 52428, 58981, 65535},
3243
{0, 6553, 13107, 19661, 26214, 32768, 39321, 45875, 52428, 58981, 65535},
3344
{0, 6553, 13107, 19661, 26214, 32768, 39321, 45875, 52428, 58981, 65535},
34-
{0, 6553, 13107, 19661, 26214, 32768, 39321, 45875, 52428, 58981, 65535} },
45+
{0, 6553, 13107, 19661, 26214, 32768, 39321, 45875, 52428, 58981, 65535}
46+
#endif
47+
},
3548
},
3649
// ADC
3750
{ { _ADC_OFFSET, _ADC_OFFSET, _ADC_OFFSET, _ADC_OFFSET },

0 commit comments

Comments
 (0)