void activateTrigger(const actuator_t* const actuator_p) { ioSetOutput(actuator_p->output_on); ioResetOutput(actuator_p->output_off); ioToggleOutput(actuator_p->output_toggle); setState(actuator_p->state_on); resetState(actuator_p->state_off); toggleState(actuator_p->state_toggle); }
// _motorApply10 - Set PWM value for motor port #10 static void _motorApply10() { uint8_t value = motor10; // PWM values 126 and 128 do not give any meaningful motor impulse if (value > 128) { // Forward TIM4->CCR3 = (uint16_t)0; ioSetOutput(GPIOD, 8, 0); ioSetOutput(GPIOD, 7, 1); TIM4->CCR4 = (uint16_t)(value - 128); } else if (value <= 126) { // Reverse TIM4->CCR4 = (uint16_t)0; ioSetOutput(GPIOD, 7, 0); ioSetOutput(GPIOD, 8, 1); TIM4->CCR3 = (uint16_t)(127 - value); } else { // Stop - clear GPIOD 7 and 8 TIM4->CCR3 = (uint16_t)0; TIM4->CCR4 = (uint16_t)0; GPIOD->BRR = 0x0180; } TIM4->CCMR2 = (uint16_t)0x6868; }
// _motorApply1 - Set PWM value for motor port #1 static void _motorApply1() { uint8_t value = motor1; // PWM values 126 and 128 do not give any meaningful motor impulse if (value > 128) { // Forward TIM4->CCR1 = (uint16_t)0; ioSetOutput(GPIOD, 4, 0); ioSetOutput(GPIOD, 3, 1); TIM4->CCR2 = (uint16_t)(value - 128); } else if (value <= 126) { // Reverse TIM4->CCR2 = (uint16_t)0; ioSetOutput(GPIOD, 3, 0); ioSetOutput(GPIOD, 4, 1); TIM4->CCR1 = (uint16_t)(127 - value); } else { // Stop - clear GPIOD 3 and 4 TIM4->CCR1 = (uint16_t)0; TIM4->CCR2 = (uint16_t)0; GPIOD->BRR = 0x0018; } TIM4->CCMR1 = (uint16_t)0x6868; }