ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1307553
IBAH (07.05.2023 20:48, просмотров: 1986)
STMовский таймер, мануал осилить не могу, чую что криво, а понять что делать не могу 

надо включать/выключать из фоновой задачи, выдавать импульсы на порт, после включения надо выдавать импульс сразу, а после выключения выставить выход в 0

делаю так

//
void StartMotorShD1(void) 
  { 
  EnShD1=!0; 
  TIM2->EGR=TIM_EGR_UG;  
  TIM2->CR1 = TIM_CR1_CEN; 
  }

void StopMotorShD1(void)  
  { 
  EnShD1=0;
  } 

void TIM2_IRQHandler(void)

{

TIM2->SR=0;

if(EnShD1)

{

if(StepShD1Get()==0)

{

StepShD1Set1();

KolvoShD1++;

}

else { StepShD1Set0(); }

}

else

{

StepShD1Set0();

TIM2->CR1 = 0;

}

return;

}

//

Не нравятся игры с выключением таймера ...