|
@@ -1,6 +1,7 @@
|
|
|
#include "main.h"
|
|
|
|
|
|
/* private defines */
|
|
|
+#define FRAMEBUFFER_ROTATE
|
|
|
#define DISPLAY_COLUMNS 24
|
|
|
|
|
|
/* private macros */
|
|
@@ -21,7 +22,7 @@ static void I2C1_Init(void);
|
|
|
static void SPI1_Init(void);
|
|
|
static void GPIO_SPI_SW(void);
|
|
|
static void GPIO_SPI_HW(void);
|
|
|
-//static void TIM1_Init(void);
|
|
|
+static void TIM1_Init(void);
|
|
|
//static void TIM3_Init(void);
|
|
|
//static void TIM14_Init(void);
|
|
|
//static void TIM16_Init(void);
|
|
@@ -43,7 +44,7 @@ void Board_Init(void)
|
|
|
/* Main peripheral clock enable */
|
|
|
RCC->AHBENR |= (RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOBEN | RCC_AHBENR_DMAEN);
|
|
|
RCC->APB1ENR = (RCC_APB1ENR_PWREN | RCC_APB1ENR_I2C1EN); // | RCC_APB1ENR_TIM14EN| RCC_APB1ENR_TIM3EN);
|
|
|
- RCC->APB2ENR = (RCC_APB2ENR_SYSCFGEN | RCC_APB2ENR_SPI1EN); // | RCC_APB2ENR_TIM1EN | RCC_APB2ENR_TIM16EN | RCC_APB2ENR_TIM17EN);
|
|
|
+ RCC->APB2ENR = (RCC_APB2ENR_SYSCFGEN | RCC_APB2ENR_SPI1EN | RCC_APB2ENR_TIM1EN); // | RCC_APB2ENR_TIM16EN | RCC_APB2ENR_TIM17EN);
|
|
|
|
|
|
/* Peripheral interrupt init*/
|
|
|
/* RCC_IRQn interrupt configuration */
|
|
@@ -71,7 +72,7 @@ void Board_Init(void)
|
|
|
SPI1->CR1 |= SPI_CR1_SPE;
|
|
|
// Flag.SPI_TX_End = 1;
|
|
|
|
|
|
-// TIM1_Init();
|
|
|
+ TIM1_Init();
|
|
|
// TIM3_Init();
|
|
|
// TIM14_Init();
|
|
|
// TIM16_Init();
|
|
@@ -160,6 +161,8 @@ static void GPIO_Init(void)
|
|
|
|GPIO_OSPEEDR_OSPEEDR6|GPIO_OSPEEDR_OSPEEDR7);
|
|
|
// Open Drain
|
|
|
GPIOB->OTYPER = (GPIO_OTYPER_OT_6|GPIO_OTYPER_OT_7);
|
|
|
+ // AF2 for PA8
|
|
|
+ GPIOA->AFR[1] = 0x2;
|
|
|
// AF1 for PB6 & PB7
|
|
|
GPIOB->AFR[0] = (0x1<<24) | (0x1<<28);
|
|
|
|
|
@@ -261,6 +264,29 @@ void display_Init(void) {
|
|
|
display_Fill(0x0);
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * @brief TIM1 Initialization Function
|
|
|
+ * @param None
|
|
|
+ * @retval None
|
|
|
+ */
|
|
|
+static void TIM1_Init(void)
|
|
|
+{
|
|
|
+ /* target clock */
|
|
|
+ TIM1->PSC = 47; // 1 MHz counter
|
|
|
+ TIM1->ARR = 1000; // 1 KHz, auto reload value
|
|
|
+ TIM1->CR1 = TIM_CR1_ARPE;
|
|
|
+ // initial pwm value
|
|
|
+ TIM1->CCR1 = 500; // PWM 50% - max volume
|
|
|
+ // pwm mode 1 for 4 chanels
|
|
|
+ TIM1->CCMR1 = (TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1PE);
|
|
|
+ // reset int flag - not needed, int unused
|
|
|
+ //TIM1->SR |= TIM_SR_UIF;
|
|
|
+ TIM1->BDTR = TIM_BDTR_MOE; // enable main output
|
|
|
+ TIM1->EGR = TIM_EGR_UG; // force timer update
|
|
|
+ /* TIM1 CC_EnableChannel */
|
|
|
+ TIM1->CCER = TIM_CCER_CC1E;
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* @brief Set HT1632C PWM Value
|
|
|
* @param pwm value in 0-15
|
|
@@ -509,6 +535,20 @@ void display_Fill(uint8_t pattern) {
|
|
|
display_WriteBuffer();
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * @brief Buzzer control: On.
|
|
|
+ */
|
|
|
+void buzer_On(void) {
|
|
|
+ BUZER_ON;
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * @brief Buzzer control: Off.
|
|
|
+ */
|
|
|
+void buzer_Off(void) {
|
|
|
+ BUZER_OFF;
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* @brief This function handles EXTI line 4 to 15 interrupts.
|
|
|
*/
|