Перейти к содержанию
    

Увеличение частоты мигания

Добрый вечер, такое дело. Учусь программировать контроллеры с помощью ARM keil и STM32 Cube.У меня подключен таймер для мигания светодиода. После нажатия на кнопку он должен начать мигать в 2 раза чаще во время задержки, а потом выключится. Не понимаю каким образом мне поменять частоту таймера в функции int main()

 while (1)
  {
  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */
	
	button_state=HAL_GPIO_ReadPin(Button_1_GPIO_Port,Button_1_Pin);
		if (button_state==1)
		{
			HAL_GPIO_WritePin(Led2_GPIO_Port,Led2_Pin,GPIO_PIN_RESET);
		}
		if (button_state==0)
		{
			while(1)
			{				
				HAL_GPIO_TogglePin(Led2_GPIO_Port,Led2_Pin);
				HAL_Delay(300);
				button_state=HAL_GPIO_ReadPin(Button_1_GPIO_Port,Button_1_Pin);
				if (button_state==0)
				{
						
						HAL_GPIO_TogglePin(Led2_GPIO_Port,Led2_Pin);
						HAL_Delay(2000);
						break;
				}
				
			}
			
		}
  }

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не очень понятно что такое

Цитата

...он должен начать мигать в 2 раза чаще во время задержки...


За 0.34 секунды гугл дал мне понять, что HAL_Delay() опирается на SysTick, а тот является вообще сердцем всего HAL. Не надо его перенастраивать.

В том виде, в котором сейчас написан Ваш исходник, будут пропуски нажатия кнопок. Подумайте, почему и в каких случаях. Постарайтесь написать цикл в так называемом автоматном стиле - в этом случае процессор будет очень быстро проходить его от начала до конца (и так по кругу), не блокируясь на HAL_Delay() (ведь он таки мешат в том числе быстрому опросу кнопки). А еще: любая кнопка - это 2 металлических пластинки. В момент нажатия они быстро соударяются, и в конечное положение "замкнуто" приходят не сразу. Там будет дребезг контактов, и ПО должно это учитывать, дабы избежать ложных срабатываний.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...