} else {
ushort_t reload_val = ch->reload_value;
+ if (ch->op_mode == SW_STROBE) {
+ reload_val = 0xffff;
+ }
+
// TODO: Check this....
// Is this correct???
if (reload_val == 0) {
break;
case SW_STROBE:
- PrintError("Software strobe not implemented\n");
- return -1;
+
+ if (channel_cycles > 0) {
+ if (ch->output_pin == 1) {
+ ch->output_pin = 0;
+ output_changed = 1;
+ }
+ }
break;
case HW_STROBE:
PrintError("Hardware strobe not implemented\n");
case SQR_WAVE:
ch->output_pin = 1;
break;
+ case SW_STROBE:
+ ch->output_pin = 1;
+ break;
default:
PrintError("Invalid OP_MODE: %d\n", ch->op_mode);
return -1;
case SQR_WAVE:
ch->output_pin = 1;
break;
+ case SW_STROBE:
+ ch->output_pin = 1;
+ break;
default:
PrintError("Invalid OP_MODE: %d\n", cmd.op_mode);
return -1;