last commit for glasser code
This commit is contained in:
parent
3e282ab203
commit
d233737c95
6 changed files with 33 additions and 21 deletions
|
@ -41,6 +41,7 @@
|
|||
#if !defined(WS2812_TIM_N)
|
||||
#error WS2812 timer not specified
|
||||
#endif
|
||||
// values for these might be found in table 14 in DM00058181 (STM32F303)
|
||||
#if defined(STM32F2XX) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32F7XX)
|
||||
#if WS2812_TIM_N <= 2
|
||||
#define WS2812_AF 1
|
||||
|
@ -61,8 +62,10 @@
|
|||
|
||||
/* --- PRIVATE CONSTANTS ---------------------------------------------------- */
|
||||
|
||||
#define WS2812_PWM_FREQUENCY (STM32_SYSCLK/2) /**< Clock frequency of PWM */
|
||||
#define WS2812_PWM_PERIOD (WS2812_PWM_FREQUENCY/800000) /**< Clock period in ticks. 90/(72 MHz) = 1.25 uS (as per datasheet) */
|
||||
//#define WS2812_PWM_FREQUENCY (STM32_SYSCLK/2) /**< Clock frequency of PWM */
|
||||
#define WS2812_PWM_FREQUENCY (72000000) /**< Clock frequency of PWM */
|
||||
//#define WS2812_PWM_PERIOD (WS2812_PWM_FREQUENCY/800000) /**< Clock period in ticks. 90/(72 MHz) = 1.25 uS (as per datasheet) */
|
||||
#define WS2812_PWM_PERIOD (90) /**< Clock period in ticks. 90/(72 MHz) = 1.25 uS (as per datasheet) */
|
||||
|
||||
/**
|
||||
* @brief Number of bit-periods to hold the data line low at the end of a frame
|
||||
|
@ -86,7 +89,8 @@
|
|||
* a low period of (90 - 22)/(72 MHz) = 9.44 uS. These values are within the allowable
|
||||
* bounds, and intentionally skewed as far to the low duty-cycle side as possible
|
||||
*/
|
||||
#define WS2812_DUTYCYCLE_0 (WS2812_PWM_FREQUENCY/(1000000000/350))
|
||||
//#define WS2812_DUTYCYCLE_0 (WS2812_PWM_FREQUENCY/(1000000000/350))
|
||||
#define WS2812_DUTYCYCLE_0 (22)
|
||||
|
||||
/**
|
||||
* @brief High period for a one, in ticks
|
||||
|
@ -99,7 +103,8 @@
|
|||
* a low period of (90 - 56)/(72 MHz) = 4.72 uS. These values are within the allowable
|
||||
* bounds, and intentionally skewed as far to the high duty-cycle side as possible
|
||||
*/
|
||||
#define WS2812_DUTYCYCLE_1 (WS2812_PWM_FREQUENCY/(1000000000/800))
|
||||
//#define WS2812_DUTYCYCLE_1 (WS2812_PWM_FREQUENCY/(1000000000/800))
|
||||
#define WS2812_DUTYCYCLE_1 (56)
|
||||
|
||||
/* --- PRIVATE MACROS ------------------------------------------------------- */
|
||||
|
||||
|
@ -175,11 +180,11 @@ void ws2812_init(void)
|
|||
for (i = 0; i < WS2812_RESET_BIT_N; i++) ws2812_frame_buffer[i + WS2812_COLOR_BIT_N] = 0; // All reset bits are zero
|
||||
|
||||
// Configure PA1 as AF output
|
||||
#ifdef WS2812_EXTERNAL_PULLUP
|
||||
palSetPadMode(PORT_WS2812, PIN_WS2812, PAL_MODE_ALTERNATE(WS2812_AF) | PAL_STM32_OTYPE_OPENDRAIN);
|
||||
#else
|
||||
palSetPadMode(PORT_WS2812, PIN_WS2812, PAL_MODE_ALTERNATE(WS2812_AF));
|
||||
#endif
|
||||
//#ifdef WS2812_EXTERNAL_PULLUP
|
||||
// palSetPadMode(PORT_WS2812, PIN_WS2812, PAL_MODE_ALTERNATE(WS2812_AF) | PAL_STM32_OTYPE_OPENDRAIN);
|
||||
//#else
|
||||
palSetPadMode(PORT_WS2812, PIN_WS2812, PAL_MODE_ALTERNATE(1));
|
||||
//#endif
|
||||
|
||||
// PWM Configuration
|
||||
#pragma GCC diagnostic ignored "-Woverride-init" // Turn off override-init warning for this struct. We use the overriding ability to set a "default" channel config
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue