16+
Четверг
14 декабря
Вход |Карта сайта | |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

ARM-контроллеры

 
   Новая тема Правила Регистрация Поиск »» Архив
Вернуться в конференциюТопик полностью
Лагунов  (02.10.2017 13:12 - 02.10.2017 13:23) , в ответ на один в один! сейчас работает так: в обработчике прерываний по линии SCL импульсами вытягиваю информацию по SDO, сбрасываю флаг события. Хочу так: Прерывание произошло, запрещаем прерывание, выставляем флаг, по флагу в фоновой задаче автор: IBAH
Как у меня сделано -> 
В файле stm32l4xx_it.c
void EXTI0_IRQHandler(void)
{
  /* USER CODE BEGIN EXTI0_IRQn 0 */

  /* USER CODE END EXTI0_IRQn 0 */
  HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);
  /* USER CODE BEGIN EXTI0_IRQn 1 */
	KLAV ();
  /* USER CODE END EXTI0_IRQn 1 */
}
Сама функция KLAV ()
void  KLAV (void)
{
  HAL_NVIC_DisableIRQ(EXTI0_IRQn);
			
	SCKL=0;
	int x;
	x=0;
	while (x<50)	//2,5 mksek
		{
			x=x+1;
		}
	FLKL=1;
	EXTI->PR1|=0x01;	
}
Потом в свободное время вытягиваю информацию с SDO если флаг FLKL установлен. Каждые 100мсек восстанавливаю разрешение:
	SCKL=SCKL+1;
	if (SCKL>100)
		{
			EXTI->PR1|=0x01;	
			HAL_NVIC_EnableIRQ(EXTI0_IRQn);
		}
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7526 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXVII