2016-09-30 7 views
3

ARM MCU (STM32F411)에 익숙하지 않은 나는 STM의 HAL 라이브러리와 STM32Cube를 사용하여 주변기기를 찾았다.STM32 - 특정 PWM ON 시간 후 인터럽트를 트리거하는 방법은 무엇입니까?

이미 일부 주변 장치를 사용하기 위해 내 보드를 구성한

:에 PWM의 실행을 위해 특정 주파수로

  • 타이머 3를 인터럽트를 실행하기위한

    • 타이머 2을 그것의 3 개의 수로.

    • ADC 일부 아날로그 입력을 읽기 위해 DMA 모드로 4 채널을 사용합니다.

    은 우리가 PWM의 전체 기간은 100 밀리이고 그것의 듀티 사이클이 50 % (에 50 밀리 PWM 및 50 밀리 PWM 오프)입니다, 지금은 가정하자.

    PWM의 특정 시간이 지나면 인터럽트를 트리거하고 싶습니다.이 중 50 %는 인터럽트입니다.

    따라서 아날로그 입력을 샘플링하기 위해 ADC를 사용하려면 25ms에서 인터럽트를 실행하고 싶습니다.

    그런 종류의 인터럽트를 구현할 수있는 방법에 대한 의견이 있으십니까?

    도움을 주셔서 감사합니다.

  • +0

    PWM주기의 시작 부분에서 다른 타이머를 시작할 수 있습니다.이 타이머는 25ms 후에 인터럽트를 생성합니다. –

    +0

    STM32F4에는 이와 같은 작업을 수행 할 수있는 기능이 있습니까? – starScream

    답변

    3

    정규 모드 ( 주입 모드가 아님)에서 ADC를 사용하고 4 개 중 3 개 채널 만 타이머 3에서 PWM을 생성하는 데 사용되므로 4 번째 채널을 사용하여 ADC를 트리거 할 수 있습니다. 따라서, 타이머 (3)로 구성되어

    다음 :

    • CH1 모드 0 (TIM3-> CCMR1.OC1M = 0)
    • CH2, CH3 비교 출력에 사용, CH4PWM 출력
    • (210)

    따라서 TIM3-> CCR1 의무의 25 %를 제공하는 값으로로드, 그것은 시작의 변환하여 TIM3 타임베이스의 25 %에서 ADC를 실행하는 데 사용할 수 있습니다 TIM3_CH1 이벤트를 생성합니다.