buzzer is working
This commit is contained in:
parent
49a7f2592c
commit
7f54b22e6b
@ -45,6 +45,8 @@
|
||||
#define LED_GPIO_Port GPIOC
|
||||
#define ERROR_Pin GPIO_PIN_14
|
||||
#define ERROR_GPIO_Port GPIOC
|
||||
#define BUZZER_Pin GPIO_PIN_8
|
||||
#define BUZZER_GPIO_Port GPIOA
|
||||
#define ROTARY_B_Pin GPIO_PIN_3
|
||||
#define ROTARY_B_GPIO_Port GPIOB
|
||||
#define ROTARY_A_Pin GPIO_PIN_4
|
||||
|
@ -77,7 +77,7 @@
|
||||
/*#define HAL_SMARTCARD_MODULE_ENABLED */
|
||||
#define HAL_SPI_MODULE_ENABLED
|
||||
/*#define HAL_SRAM_MODULE_ENABLED */
|
||||
/*#define HAL_TIM_MODULE_ENABLED */
|
||||
#define HAL_TIM_MODULE_ENABLED
|
||||
/*#define HAL_UART_MODULE_ENABLED */
|
||||
/*#define HAL_USART_MODULE_ENABLED */
|
||||
/*#define HAL_WWDG_MODULE_ENABLED */
|
||||
|
@ -42,6 +42,8 @@ ADC_HandleTypeDef hadc1;
|
||||
|
||||
SPI_HandleTypeDef hspi1;
|
||||
|
||||
TIM_HandleTypeDef htim1;
|
||||
|
||||
/* USER CODE BEGIN PV */
|
||||
/* Private variables ---------------------------------------------------------*/
|
||||
|
||||
@ -53,6 +55,10 @@ void Error_Handler(void);
|
||||
static void MX_GPIO_Init(void);
|
||||
static void MX_ADC1_Init(void);
|
||||
static void MX_SPI1_Init(void);
|
||||
static void MX_TIM1_Init(void);
|
||||
|
||||
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
|
||||
|
||||
|
||||
/* USER CODE BEGIN PFP */
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
@ -82,6 +88,7 @@ int main(void)
|
||||
MX_GPIO_Init();
|
||||
MX_ADC1_Init();
|
||||
MX_SPI1_Init();
|
||||
MX_TIM1_Init();
|
||||
|
||||
/* USER CODE BEGIN 2 */
|
||||
|
||||
@ -201,6 +208,72 @@ static void MX_SPI1_Init(void)
|
||||
|
||||
}
|
||||
|
||||
/* TIM1 init function */
|
||||
static void MX_TIM1_Init(void)
|
||||
{
|
||||
|
||||
TIM_ClockConfigTypeDef sClockSourceConfig;
|
||||
TIM_MasterConfigTypeDef sMasterConfig;
|
||||
TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig;
|
||||
TIM_OC_InitTypeDef sConfigOC;
|
||||
|
||||
htim1.Instance = TIM1;
|
||||
htim1.Init.Prescaler = 36;
|
||||
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||
htim1.Init.Period = 1000;
|
||||
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||
htim1.Init.RepetitionCounter = 0;
|
||||
if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
|
||||
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
|
||||
if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
|
||||
if (HAL_TIM_OC_Init(&htim1) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
|
||||
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
||||
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
||||
if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
|
||||
sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
|
||||
sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
|
||||
sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
|
||||
sBreakDeadTimeConfig.DeadTime = 0;
|
||||
sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
|
||||
sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
|
||||
sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
|
||||
if (HAL_TIMEx_ConfigBreakDeadTime(&htim1, &sBreakDeadTimeConfig) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
|
||||
sConfigOC.OCMode = TIM_OCMODE_TOGGLE;
|
||||
sConfigOC.Pulse = 10000;
|
||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
||||
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
|
||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
||||
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
|
||||
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
|
||||
if (HAL_TIM_OC_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
|
||||
HAL_TIM_MspPostInit(&htim1);
|
||||
|
||||
}
|
||||
|
||||
/** Configure pins as
|
||||
* Analog
|
||||
* Input
|
||||
|
@ -185,6 +185,65 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
|
||||
|
||||
}
|
||||
|
||||
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
|
||||
{
|
||||
|
||||
if(htim_base->Instance==TIM1)
|
||||
{
|
||||
/* USER CODE BEGIN TIM1_MspInit 0 */
|
||||
|
||||
/* USER CODE END TIM1_MspInit 0 */
|
||||
/* Peripheral clock enable */
|
||||
__HAL_RCC_TIM1_CLK_ENABLE();
|
||||
/* USER CODE BEGIN TIM1_MspInit 1 */
|
||||
|
||||
/* USER CODE END TIM1_MspInit 1 */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
|
||||
{
|
||||
|
||||
GPIO_InitTypeDef GPIO_InitStruct;
|
||||
if(htim->Instance==TIM1)
|
||||
{
|
||||
/* USER CODE BEGIN TIM1_MspPostInit 0 */
|
||||
|
||||
/* USER CODE END TIM1_MspPostInit 0 */
|
||||
|
||||
/**TIM1 GPIO Configuration
|
||||
PA8 ------> TIM1_CH1
|
||||
*/
|
||||
GPIO_InitStruct.Pin = BUZZER_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(BUZZER_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
/* USER CODE BEGIN TIM1_MspPostInit 1 */
|
||||
|
||||
/* USER CODE END TIM1_MspPostInit 1 */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
|
||||
{
|
||||
|
||||
if(htim_base->Instance==TIM1)
|
||||
{
|
||||
/* USER CODE BEGIN TIM1_MspDeInit 0 */
|
||||
|
||||
/* USER CODE END TIM1_MspDeInit 0 */
|
||||
/* Peripheral clock disable */
|
||||
__HAL_RCC_TIM1_CLK_DISABLE();
|
||||
}
|
||||
/* USER CODE BEGIN TIM1_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END TIM1_MspDeInit 1 */
|
||||
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN 1 */
|
||||
|
||||
/* USER CODE END 1 */
|
||||
|
@ -22,28 +22,31 @@ Mcu.IP1=NVIC
|
||||
Mcu.IP2=RCC
|
||||
Mcu.IP3=SPI1
|
||||
Mcu.IP4=SYS
|
||||
Mcu.IPNb=5
|
||||
Mcu.IP5=TIM1
|
||||
Mcu.IPNb=6
|
||||
Mcu.Name=STM32F103C(8-B)Tx
|
||||
Mcu.Package=LQFP48
|
||||
Mcu.Pin0=PC13-TAMPER-RTC
|
||||
Mcu.Pin1=PC14-OSC32_IN
|
||||
Mcu.Pin10=PB3
|
||||
Mcu.Pin11=PB4
|
||||
Mcu.Pin12=PB5
|
||||
Mcu.Pin13=PB6
|
||||
Mcu.Pin14=PB7
|
||||
Mcu.Pin15=PB8
|
||||
Mcu.Pin16=PB9
|
||||
Mcu.Pin17=VP_SYS_VS_Systick
|
||||
Mcu.Pin10=PA14
|
||||
Mcu.Pin11=PB3
|
||||
Mcu.Pin12=PB4
|
||||
Mcu.Pin13=PB5
|
||||
Mcu.Pin14=PB6
|
||||
Mcu.Pin15=PB7
|
||||
Mcu.Pin16=PB8
|
||||
Mcu.Pin17=PB9
|
||||
Mcu.Pin18=VP_SYS_VS_Systick
|
||||
Mcu.Pin19=VP_TIM1_VS_ClockSourceINT
|
||||
Mcu.Pin2=PD0-OSC_IN
|
||||
Mcu.Pin3=PD1-OSC_OUT
|
||||
Mcu.Pin4=PA0-WKUP
|
||||
Mcu.Pin5=PA5
|
||||
Mcu.Pin6=PA6
|
||||
Mcu.Pin7=PA7
|
||||
Mcu.Pin8=PA13
|
||||
Mcu.Pin9=PA14
|
||||
Mcu.PinsNb=18
|
||||
Mcu.Pin8=PA8
|
||||
Mcu.Pin9=PA13
|
||||
Mcu.PinsNb=20
|
||||
Mcu.UserConstants=
|
||||
Mcu.UserName=STM32F103C8Tx
|
||||
MxCube.Version=4.16.1
|
||||
@ -72,6 +75,9 @@ PA6.Mode=Full_Duplex_Master
|
||||
PA6.Signal=SPI1_MISO
|
||||
PA7.Mode=Full_Duplex_Master
|
||||
PA7.Signal=SPI1_MOSI
|
||||
PA8.GPIOParameters=GPIO_Label
|
||||
PA8.GPIO_Label=BUZZER
|
||||
PA8.Signal=S_TIM1_CH1
|
||||
PB3.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
|
||||
PB3.GPIO_Label=ROTARY_B
|
||||
PB3.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
|
||||
@ -152,7 +158,7 @@ ProjectManager.StackSize=0x400
|
||||
ProjectManager.TargetToolchain=SW4STM32
|
||||
ProjectManager.ToolChainLocation=/home/wn/workspace-stm32/ttt2/cube/output/ttt2
|
||||
ProjectManager.UnderRoot=true
|
||||
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false,2-MX_ADC1_Init-ADC1-false,3-MX_SPI1_Init-SPI1-false
|
||||
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false,2-MX_ADC1_Init-ADC1-false,3-MX_SPI1_Init-SPI1-false,4-MX_TIM1_Init-TIM1-false
|
||||
RCC.ADCFreqValue=12000000
|
||||
RCC.ADCPresc=RCC_ADCPCLK2_DIV6
|
||||
RCC.AHBFreq_Value=72000000
|
||||
@ -184,12 +190,21 @@ SH.GPXTI4.0=GPIO_EXTI4
|
||||
SH.GPXTI4.ConfNb=1
|
||||
SH.GPXTI5.0=GPIO_EXTI5
|
||||
SH.GPXTI5.ConfNb=1
|
||||
SH.S_TIM1_CH1.0=TIM1_CH1,Output Compare1 CH1
|
||||
SH.S_TIM1_CH1.ConfNb=1
|
||||
SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_16
|
||||
SPI1.CLKPhase=SPI_PHASE_2EDGE
|
||||
SPI1.CLKPolarity=SPI_POLARITY_HIGH
|
||||
SPI1.CalculateBaudRate=4.5 MBits/s
|
||||
SPI1.IPParameters=Mode,CalculateBaudRate,BaudRatePrescaler,CLKPolarity,CLKPhase
|
||||
SPI1.Mode=SPI_MODE_MASTER
|
||||
TIM1.IPParameters=OCMode_1,Pulse-Output Compare1 CH1,Prescaler,Period
|
||||
TIM1.OCMode_1=TIM_OCMODE_TOGGLE
|
||||
TIM1.Period=1000
|
||||
TIM1.Prescaler=36
|
||||
TIM1.Pulse-Output\ Compare1\ CH1=10000
|
||||
VP_SYS_VS_Systick.Mode=SysTick
|
||||
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
|
||||
VP_TIM1_VS_ClockSourceINT.Mode=Internal
|
||||
VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT
|
||||
board=ttt2
|
||||
|
@ -45,6 +45,8 @@
|
||||
#define LED_GPIO_Port GPIOC
|
||||
#define ERROR_Pin GPIO_PIN_14
|
||||
#define ERROR_GPIO_Port GPIOC
|
||||
#define BUZZER_Pin GPIO_PIN_8
|
||||
#define BUZZER_GPIO_Port GPIOA
|
||||
#define ROTARY_B_Pin GPIO_PIN_3
|
||||
#define ROTARY_B_GPIO_Port GPIOB
|
||||
#define ROTARY_A_Pin GPIO_PIN_4
|
||||
|
@ -77,7 +77,7 @@
|
||||
/*#define HAL_SMARTCARD_MODULE_ENABLED */
|
||||
#define HAL_SPI_MODULE_ENABLED
|
||||
/*#define HAL_SRAM_MODULE_ENABLED */
|
||||
/*#define HAL_TIM_MODULE_ENABLED */
|
||||
#define HAL_TIM_MODULE_ENABLED
|
||||
/*#define HAL_UART_MODULE_ENABLED */
|
||||
/*#define HAL_USART_MODULE_ENABLED */
|
||||
/*#define HAL_WWDG_MODULE_ENABLED */
|
||||
|
@ -7,6 +7,72 @@
|
||||
|
||||
|
||||
#include "stm32f1xx_hal.h"
|
||||
#include <PontCoopScheduler.h>
|
||||
#include "alarm.h"
|
||||
|
||||
|
||||
extern TIM_HandleTypeDef htim1;
|
||||
|
||||
|
||||
typedef struct {
|
||||
uint16_t f;
|
||||
uint8_t inUse;
|
||||
} tBuzzerHandle;
|
||||
|
||||
tBuzzerHandle buzzerHandle;
|
||||
|
||||
|
||||
static void startBuzzer(uint16_t f) {
|
||||
HAL_TIM_OC_Stop(&htim1, TIM_CHANNEL_1);
|
||||
__HAL_TIM_SET_COUNTER(&htim1, 0);
|
||||
__HAL_TIM_SET_AUTORELOAD(&htim1, f);
|
||||
HAL_TIM_OC_Start(&htim1, TIM_CHANNEL_1);
|
||||
}
|
||||
|
||||
static void stopBuzzer() {
|
||||
HAL_TIM_OC_Stop(&htim1, TIM_CHANNEL_1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void buzzerTest(void *handle) {
|
||||
static enum {BUZZER_OFF, BUZZER_LOW, BUZZER_HIGH} state = BUZZER_OFF;
|
||||
|
||||
switch (state) {
|
||||
case BUZZER_OFF:
|
||||
HAL_TIM_OC_Stop(&htim1, TIM_CHANNEL_1);
|
||||
state = BUZZER_LOW;
|
||||
break;
|
||||
case BUZZER_LOW:
|
||||
HAL_TIM_OC_Stop(&htim1, TIM_CHANNEL_1);
|
||||
__HAL_TIM_SET_COUNTER(&htim1, 0);
|
||||
__HAL_TIM_SET_AUTORELOAD(&htim1, 2000);
|
||||
HAL_TIM_OC_Start(&htim1, TIM_CHANNEL_1);
|
||||
state = BUZZER_HIGH;
|
||||
break;
|
||||
case BUZZER_HIGH:
|
||||
HAL_TIM_OC_Stop(&htim1, TIM_CHANNEL_1);
|
||||
__HAL_TIM_SET_COUNTER(&htim1, 0);
|
||||
__HAL_TIM_SET_AUTORELOAD(&htim1, 1000);
|
||||
HAL_TIM_OC_Start(&htim1, TIM_CHANNEL_1);
|
||||
state = BUZZER_OFF;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void stopBuzzing(void *handle) {
|
||||
stopBuzzer();
|
||||
}
|
||||
|
||||
void buzz(void *handle) {
|
||||
tBuzzerHandle *lBuzzerHandle = (tBuzzerHandle*) handle;
|
||||
startBuzzer(lBuzzerHandle->f);
|
||||
schAdd(stopBuzzing, NULL, 100, 0);
|
||||
}
|
||||
|
||||
void alarmInit() {
|
||||
// schAdd(buzzerTest, NULL, 0, 5000);
|
||||
}
|
||||
|
||||
|
||||
void blink(void *handle) {
|
||||
@ -14,11 +80,24 @@ void blink(void *handle) {
|
||||
}
|
||||
|
||||
|
||||
void enableAlarm() {
|
||||
|
||||
void enableAlarm(tAlarmType alarmType) {
|
||||
schAdd(blink, NULL, 0, 100);
|
||||
|
||||
uint16_t f;
|
||||
if (alarmType == TIME_ALARM) {
|
||||
buzzerHandle.f = 4000;
|
||||
} else {
|
||||
buzzerHandle.f = 2000;
|
||||
}
|
||||
if (buzzerHandle.inUse == 0) {
|
||||
buzzerHandle.inUse = 1;
|
||||
schAdd(buzz, &buzzerHandle, 0, 10000);
|
||||
}
|
||||
}
|
||||
|
||||
void disableAlarm() {
|
||||
schDel(blink, NULL);
|
||||
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, RESET);
|
||||
schDel(buzz, &buzzerHandle);
|
||||
}
|
||||
|
@ -9,7 +9,13 @@
|
||||
#define ALARM_H_
|
||||
|
||||
|
||||
void enableAlarm();
|
||||
typedef enum {
|
||||
TIME_ALARM,
|
||||
TEMPERATURE_ALARM
|
||||
} tAlarmType;
|
||||
|
||||
void alarmInit();
|
||||
void enableAlarm(tAlarmType alarmType);
|
||||
void disableAlarm();
|
||||
|
||||
|
||||
|
@ -82,7 +82,7 @@ void eepromWrite(uint16_t addr, uint8_t *buf, uint8_t len) {
|
||||
eepromWren();
|
||||
|
||||
__EEPROM_CS(LOW);
|
||||
HAL_SPI_Transmit(&hspi1, &msg, ((uint16_t)(len+3)), HAL_MAX_DELAY);
|
||||
HAL_SPI_Transmit(&hspi1, &msg, ((uint16_t)(len+3+1)), HAL_MAX_DELAY);
|
||||
__EEPROM_CS(HIGH);
|
||||
}
|
||||
|
||||
@ -98,7 +98,7 @@ void eepromRead(uint16_t addr, uint8_t *buf, uint8_t len) {
|
||||
rxMsg;
|
||||
|
||||
__EEPROM_CS(LOW);
|
||||
HAL_SPI_TransmitReceive(&hspi1, &txMsg, &rxMsg, ((uint16_t)(len+3)), HAL_MAX_DELAY);
|
||||
HAL_SPI_TransmitReceive(&hspi1, &txMsg, &rxMsg, ((uint16_t)(len+3+1)), HAL_MAX_DELAY);
|
||||
__EEPROM_CS(HIGH);
|
||||
|
||||
memcpy(buf, rxMsg.data, len);
|
||||
|
@ -11,7 +11,7 @@
|
||||
#include "stm32f1xx_hal.h"
|
||||
|
||||
|
||||
#define STORAGE_ADDRESS 0x10
|
||||
#define STORAGE_ADDRESS 0x20
|
||||
|
||||
void eepromWrite(uint16_t addr, uint8_t *buf, uint8_t len);
|
||||
void eepromRead(uint16_t addr, uint8_t *buf, uint8_t len);
|
||||
|
14
my_src/hmi.c
14
my_src/hmi.c
@ -15,7 +15,8 @@
|
||||
|
||||
|
||||
|
||||
const uint32_t STORAGE_MAGIC = 0xaffe0002;
|
||||
const uint32_t STORAGE_MAGIC = 0xaffe000a;
|
||||
|
||||
|
||||
|
||||
|
||||
@ -65,7 +66,7 @@ void updateDisplay(void *handle) {
|
||||
// sprintf(buf, "%d %d %d", c, i, i-h);
|
||||
// h = i;
|
||||
// c++;
|
||||
// LED_P8x16Str(0, 6, buf);
|
||||
LED_P8x16Str(0, 6, buf);
|
||||
}
|
||||
|
||||
|
||||
@ -76,13 +77,16 @@ void hmiInit() {
|
||||
display.targetTime = storage.savedTime;
|
||||
} else {
|
||||
storage.magic = STORAGE_MAGIC;
|
||||
storage.savedTemperature = 0;
|
||||
storage.savedTime = 0;
|
||||
storage.savedTemperature = 80;
|
||||
storage.savedTime = 90;
|
||||
eepromWrite(STORAGE_ADDRESS, &storage, sizeof(storage));
|
||||
|
||||
// eepromRead(STORAGE_ADDRESS, &storage, sizeof(storage));
|
||||
display.targetTemperature = storage.savedTemperature;
|
||||
display.targetTime = storage.savedTime;
|
||||
}
|
||||
|
||||
schAdd(updateDisplay, &display, 0, 250);
|
||||
|
||||
}
|
||||
|
||||
void clearSetMode(void *handle) {
|
||||
|
@ -23,7 +23,7 @@
|
||||
|
||||
#include "oled.h"
|
||||
#include "timer.h"
|
||||
|
||||
#include "alarm.h"
|
||||
|
||||
|
||||
void my_setup_1() {
|
||||
@ -47,7 +47,7 @@ void my_setup_2() {
|
||||
hmiInit();
|
||||
timerInit();
|
||||
oledInit();
|
||||
|
||||
alarmInit();
|
||||
}
|
||||
|
||||
|
||||
|
@ -5,9 +5,11 @@
|
||||
* Author: wn
|
||||
*/
|
||||
|
||||
#include <hmi.h>
|
||||
#include "hmi.h"
|
||||
#include "timer.h"
|
||||
#include "alarm.h"
|
||||
#include <PontCoopScheduler.h>
|
||||
|
||||
|
||||
|
||||
extern tDisplay display;
|
||||
@ -32,7 +34,7 @@ void secondTick(void *handle) {
|
||||
case RUNNING:
|
||||
lDisplay->currentTime -= 1;
|
||||
if (lDisplay->currentTime == 0) {
|
||||
enableAlarm();
|
||||
enableAlarm(TIME_ALARM);
|
||||
lDisplay->timerState = OVERRUN;
|
||||
}
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user