Enable RGB Matrix
This commit is contained in:
parent
edc48a505f
commit
eb86010176
@ -27,17 +27,16 @@
|
|||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
|
||||||
#include "common-hal/rgbmatrix/RGBMatrix.h"
|
#include "common-hal/rgbmatrix/RGBMatrix.h"
|
||||||
|
#include "timers.h"
|
||||||
|
|
||||||
#include STM32_HAL_H
|
#include STM32_HAL_H
|
||||||
|
|
||||||
extern void _PM_IRQ_HANDLER(void);
|
extern void _PM_IRQ_HANDLER(void);
|
||||||
|
|
||||||
void *common_hal_rgbmatrix_timer_allocate() {
|
void *common_hal_rgbmatrix_timer_allocate() {
|
||||||
// TODO(jepler) properly handle resource allocation including never-reset
|
return stm_peripherals_find_timer();
|
||||||
return TIM6;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void common_hal_rgbmatrix_timer_enable(void* ptr) {
|
void common_hal_rgbmatrix_timer_enable(void* ptr) {
|
||||||
HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn);
|
HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn);
|
||||||
}
|
}
|
||||||
|
@ -4,8 +4,8 @@ INTERNAL_LIBM ?= 1
|
|||||||
USB_SERIAL_NUMBER_LENGTH ?= 24
|
USB_SERIAL_NUMBER_LENGTH ?= 24
|
||||||
|
|
||||||
ifeq ($(MCU_VARIANT),STM32F405xx)
|
ifeq ($(MCU_VARIANT),STM32F405xx)
|
||||||
CIRCUITPY_FRAMEBUFFERIO ?= 0
|
CIRCUITPY_FRAMEBUFFERIO ?= 1
|
||||||
CIRCUITPY_RGBMATRIX ?= 0
|
CIRCUITPY_RGBMATRIX ?= 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(MCU_SERIES),F4)
|
ifeq ($(MCU_SERIES),F4)
|
||||||
|
@ -85,6 +85,11 @@ uint32_t stm_peripherals_timer_get_source_freq(TIM_TypeDef * timer) {
|
|||||||
return source;
|
return source;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t stm_peripherals_timer_get_irqnum(TIM_TypeDef * instance) {
|
||||||
|
size_t tim_id = stm_peripherals_timer_get_index(instance);
|
||||||
|
return irq_map[tim_id];
|
||||||
|
}
|
||||||
|
|
||||||
void timers_reset(void) {
|
void timers_reset(void) {
|
||||||
uint16_t never_reset_mask = 0x00;
|
uint16_t never_reset_mask = 0x00;
|
||||||
for (size_t i = 0; i < MP_ARRAY_SIZE(mcu_tim_banks); i++) {
|
for (size_t i = 0; i < MP_ARRAY_SIZE(mcu_tim_banks); i++) {
|
||||||
@ -120,6 +125,7 @@ TIM_TypeDef * stm_peripherals_find_timer(void) {
|
|||||||
return mcu_tim_banks[i];
|
return mcu_tim_banks[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//TODO: secondary search for timers outside the pins in the board profile
|
||||||
|
|
||||||
// Work backwards - higher index timers have fewer pin allocations
|
// Work backwards - higher index timers have fewer pin allocations
|
||||||
for (size_t i = (MP_ARRAY_SIZE(mcu_tim_banks) - 1); i >= 0; i--) {
|
for (size_t i = (MP_ARRAY_SIZE(mcu_tim_banks) - 1); i >= 0; i--) {
|
||||||
|
@ -41,6 +41,7 @@
|
|||||||
void tim_clock_enable(uint16_t mask);
|
void tim_clock_enable(uint16_t mask);
|
||||||
void tim_clock_disable(uint16_t mask);
|
void tim_clock_disable(uint16_t mask);
|
||||||
uint32_t stm_peripherals_timer_get_source_freq(TIM_TypeDef * timer);
|
uint32_t stm_peripherals_timer_get_source_freq(TIM_TypeDef * timer);
|
||||||
|
size_t stm_peripherals_timer_get_irqnum(TIM_TypeDef * instance);
|
||||||
void timers_reset(void);
|
void timers_reset(void);
|
||||||
TIM_TypeDef * stm_peripherals_find_timer(void);
|
TIM_TypeDef * stm_peripherals_find_timer(void);
|
||||||
void stm_peripherals_timer_preinit(TIM_TypeDef * instance, uint8_t prio, void (*callback)(void));
|
void stm_peripherals_timer_preinit(TIM_TypeDef * instance, uint8_t prio, void (*callback)(void));
|
||||||
|
Loading…
Reference in New Issue
Block a user