Skip to content

Commit b39b4c0

Browse files
authored
Merge pull request #20 from harp-tech/AS_targetflow0bugcorrection
Ensure `ChannelsTargetFlow` register handles 0-values properly
2 parents d237344 + 59457ea commit b39b4c0

File tree

3 files changed

+23
-14
lines changed

3 files changed

+23
-14
lines changed

Firmware/Olfactometer/app.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ void hwbp_app_initialize(void)
7070
uint8_t hwH = 1;
7171
uint8_t hwL = 1;
7272
uint8_t fwH = 1;
73-
uint8_t fwL = 4;
73+
uint8_t fwL = 5;
7474
uint8_t ass = 0;
7575

7676
/* Start core */
@@ -814,7 +814,7 @@ void core_callback_reset_registers(void)
814814
app_regs.REG_CHANNEL0_DUTY_CYCLE = 1;
815815
app_regs.REG_CHANNEL1_FREQUENCY = 2500;
816816
app_regs.REG_CHANNEL1_DUTY_CYCLE = 1;
817-
app_regs.REG_CHANNEL2_FREQUENCY = 1500;
817+
app_regs.REG_CHANNEL2_FREQUENCY = 2500;
818818
app_regs.REG_CHANNEL2_DUTY_CYCLE = 1;
819819
app_regs.REG_CHANNEL3_FREQUENCY = 1500;
820820
app_regs.REG_CHANNEL3_DUTY_CYCLE = 1;

Firmware/Olfactometer/app_funcs.c

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -626,37 +626,43 @@ bool app_write_REG_CHANNELS_TARGET_FLOW(void *a)
626626
{
627627
float *reg = ((float*)a);
628628

629-
app_regs.REG_CHANNELS_TARGET_FLOW[0] = reg[0];
630629
if (reg[0] == 0)
631630
hwbp_app_pwm_gen_stop_ch0();
632-
else if (reg[0] > 1100)
633-
app_regs.REG_CHANNEL0_TARGET_FLOW = 1100;
631+
632+
if (reg[0] > 110)
633+
app_regs.REG_CHANNEL0_TARGET_FLOW = 110;
634634
else
635635
app_regs.REG_CHANNEL0_TARGET_FLOW = reg[0];
636+
637+
app_regs.REG_CHANNELS_TARGET_FLOW[0] = app_regs.REG_CHANNEL0_TARGET_FLOW;
636638

637639

638-
app_regs.REG_CHANNELS_TARGET_FLOW[1] = reg[1];
639640
if (reg[1] == 0)
640641
hwbp_app_pwm_gen_stop_ch1();
641-
else if (reg[1] > 110)
642+
643+
if (reg[1] > 110)
642644
app_regs.REG_CHANNEL1_TARGET_FLOW = 110;
643645
else
644646
app_regs.REG_CHANNEL1_TARGET_FLOW = reg[1];
647+
648+
app_regs.REG_CHANNELS_TARGET_FLOW[1] = app_regs.REG_CHANNEL1_TARGET_FLOW;
645649

646650

647-
app_regs.REG_CHANNELS_TARGET_FLOW[2] = reg[2];
648651
if (reg[2] == 0)
649652
hwbp_app_pwm_gen_stop_ch2();
650-
else if (reg[2] > 110)
653+
654+
if (reg[2] > 110)
651655
app_regs.REG_CHANNEL2_TARGET_FLOW = 110;
652656
else
653657
app_regs.REG_CHANNEL2_TARGET_FLOW = reg[2];
658+
659+
app_regs.REG_CHANNELS_TARGET_FLOW[2] = app_regs.REG_CHANNEL2_TARGET_FLOW;
654660

655661

656-
app_regs.REG_CHANNELS_TARGET_FLOW[3] = reg[3];
657662
if (reg[3] == 0)
658663
hwbp_app_pwm_gen_stop_ch3();
659-
else if((app_regs.REG_CHANNEL3_RANGE & MSK_CHANNEL3_RANGE_CONFIG) == GM_FLOW_100){
664+
665+
if((app_regs.REG_CHANNEL3_RANGE & MSK_CHANNEL3_RANGE_CONFIG) == GM_FLOW_100){
660666
if (reg[3] > 110)
661667
app_regs.REG_CHANNEL3_TARGET_FLOW = 110;
662668
else
@@ -668,15 +674,18 @@ bool app_write_REG_CHANNELS_TARGET_FLOW(void *a)
668674
else
669675
app_regs.REG_CHANNEL3_TARGET_FLOW = reg[3];
670676
}
677+
app_regs.REG_CHANNELS_TARGET_FLOW[3] = app_regs.REG_CHANNEL3_TARGET_FLOW;
671678

672679

673-
app_regs.REG_CHANNELS_TARGET_FLOW[4] = reg[4];
674680
if (reg[4] == 0)
675681
hwbp_app_pwm_gen_stop_ch4();
676-
else if (reg[4] > 1100)
682+
683+
if (reg[4] > 1100)
677684
app_regs.REG_CHANNEL4_TARGET_FLOW = 1100;
678685
else
679686
app_regs.REG_CHANNEL4_TARGET_FLOW = reg[4];
687+
688+
app_regs.REG_CHANNELS_TARGET_FLOW[4] = app_regs.REG_CHANNEL4_TARGET_FLOW;
680689

681690
return true;
682691
}

device.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# yaml-language-server: $schema=https://harp-tech.org/draft-02/schema/device.json
44
device: Olfactometer
55
whoAmI: 1140
6-
firmwareVersion: "1.4"
6+
firmwareVersion: "1.5"
77
hardwareTargets: "1.0"
88
registers:
99
EnableFlow:

0 commit comments

Comments
 (0)