×
嵌入式 > 技术百科 > 详情

stm8s 定时器2测量脉冲宽度(单位 us)

发布时间:2020-06-03 发布时间:
|

void Init_Timer2(void)

{

  GPIO_Init(GPIOA, GPIO_PIN_3, GPIO_MODE_IN_PU_NO_IT);//输入 无中断

  TIM2_TimeBaseInit(TIM2_PRESCALER_16,65536-1);       //16分频, 65ms 溢出

  TIM2_Cmd(ENABLE);  

}

uint16_t TIM2_GetCapture(void)

{

  /* Get the Capture  Register value */

  uint16_t tmpccr = 0;

  uint8_t tmpccrl=0, tmpccrh=0;


  tmpccrh = TIM2->CNTRH;

  tmpccrl = TIM2->CNTRL;


  tmpccr = (uint16_t)(tmpccrl);

  tmpccr |= (uint16_t)((uint16_t)tmpccrh << 8);

  /* Get the Capture  Register value */

  return (uint16_t)tmpccr;

}

void main(void)

{

  uint16_t Counter;

  System_Initializes();

  pwm1_init();

  //pwm11();

  //pwm12();

  pwm13();


  while(1)

  {

    while(SC_READ==0);

    //LED_REVERSE;

    Counter = TIM2_GetCapture();//计数值赋给变量

    TIM2_SetCounter(0);         //计数值清零

    UART1_SendByte(0xaa);

    UART1_SendByte(Counter>>8);

    UART1_SendByte(Counter);


    while(!SC_READ==0);

    Counter = TIM2_GetCapture();//计数值赋给变量

    TIM2_SetCounter(0);         //计数值清零

    UART1_SendByte(0xbb);

    UART1_SendByte(Counter>>8);

    UART1_SendByte(Counter);

    // LED_REVERSE;

  }


}



 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
英特尔在微软加速深度学习平台中提供人工智能技术