mirror of
https://github.com/jhbruhn/eurorack.git
synced 2025-03-15 02:55:49 +00:00
Fix timer channel bug
This commit is contained in:
parent
752b8c9d93
commit
c28c870687
3 changed files with 9 additions and 13 deletions
|
@ -29,6 +29,8 @@ static const uint16_t kGpioPins[] = { GPIO_PIN_8, GPIO_PIN_9, GPIO_PIN_10, GPIO_
|
|||
static GPIO_TypeDef* kGpioColorPorts[] = {GPIOC, GPIOC, GPIOF, GPIOF};
|
||||
static const uint16_t kGpioColorPins[] = {GPIO_PIN_14, GPIO_PIN_15, GPIO_PIN_6, GPIO_PIN_7};
|
||||
|
||||
static const uint32_t timer_channel[] = {TIM_CHANNEL_1, TIM_CHANNEL_2, TIM_CHANNEL_3, TIM_CHANNEL_4};
|
||||
|
||||
class Leds {
|
||||
public:
|
||||
Leds()
|
||||
|
@ -68,24 +70,18 @@ class Leds {
|
|||
sConfigOC.Pulse = 100;
|
||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
||||
HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1);
|
||||
HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_2);
|
||||
HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_3);
|
||||
HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_4);
|
||||
|
||||
for(size_t i = 0; i < kNumChannels; i++) {
|
||||
HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, timer_channel[i]);
|
||||
gpioInit.Mode = GPIO_MODE_AF_PP;
|
||||
gpioInit.Pin = kGpioPins[i];
|
||||
gpioInit.Pull = GPIO_NOPULL;
|
||||
gpioInit.Speed = GPIO_SPEED_FREQ_MEDIUM;
|
||||
gpioInit.Alternate = GPIO_AF2_TIM1;
|
||||
HAL_GPIO_Init(kGpioPorts[i], &gpioInit);
|
||||
HAL_TIM_PWM_Start(&htim1, timer_channel[i]);
|
||||
}
|
||||
|
||||
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
|
||||
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2);
|
||||
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_3);
|
||||
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_4);
|
||||
}
|
||||
|
||||
void Write()
|
||||
|
@ -101,13 +97,13 @@ class Leds {
|
|||
|
||||
if(targetColor == LED_COLOR_RED) {
|
||||
HAL_GPIO_WritePin(kGpioColorPorts[i], kGpioColorPins[i], GPIO_PIN_SET);
|
||||
intensity = 65534 - lut_led_red_gamma[intensity >> 4];
|
||||
intensity = 65535 - lut_led_red_gamma[intensity >> 4];
|
||||
} else if(targetColor == LED_COLOR_GREEN) {
|
||||
HAL_GPIO_WritePin(kGpioColorPorts[i], kGpioColorPins[i], GPIO_PIN_RESET);
|
||||
intensity = lut_led_green_gamma[intensity >> 4];
|
||||
}
|
||||
|
||||
__HAL_TIM_SET_COMPARE(&htim1, i, intensity >> 4);
|
||||
__HAL_TIM_SET_COMPARE(&htim1, timer_channel[i], intensity >> 4);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
#define ENABLE_DEBUG_PIN
|
||||
//#define ENABLE_DEBUG_PIN
|
||||
#include "drivers/debug_pin.h"
|
||||
|
||||
#include "drivers/adc.h"
|
||||
|
|
|
@ -24,9 +24,9 @@ class UI {
|
|||
};
|
||||
void Init() {
|
||||
for (size_t i = 0; i < kNumChannels; i++) {
|
||||
uint16_t* volume_hidden_params[kNumChannels] = {&volume_att_pots[i], &volume_att_pots[i], &volume_att_pots[i], &volume_att_pots[i]};
|
||||
uint16_t* volume_hidden_params[] = {&volume_att_pots[i], &volume_att_pots[i], &volume_att_pots[i], &volume_att_pots[i]};
|
||||
potControllers[i].Init(&volume_pots[i], volume_hidden_params);
|
||||
uint16_t* pan_hidden_params[kNumChannels] = {&pan_att_pots[i], &pan_att_pots[i], &pan_att_pots[i], &pan_att_pots[i]};
|
||||
uint16_t* pan_hidden_params[] = {&pan_att_pots[i], &pan_att_pots[i], &pan_att_pots[i], &pan_att_pots[i]};
|
||||
potControllers[i + kNumChannels].Init(&pan_pots[i], pan_hidden_params);
|
||||
|
||||
volume_att_pots[i] = pan_att_pots[i] = 32767 + (32767 / 2);
|
||||
|
|
Loading…
Reference in a new issue