LPC55S69之PWM

吃可爱长大的小学妹 提交于 2020-01-25 01:53:01

LPC55S69可以使用SC timer(SCT)或者ctimer来产生PWM,官方提供的ctimer例子比较好用,占空比和频率均可调。

但是,LPC55S69的SCT配置PWM在手册上没写清楚的,这里提供个例子,PWM的频率可在10Hz~1kHz之间可调,步进10Hz;占空比在1%~100%之间可调。

一、引脚。

二、外设。

三、代码。

#include "fsl_debug_console.h"
#include "board.h"
#include "fsl_sctimer.h"
#include "pin_mux.h"
#include <stdbool.h>
#include "peripherals.h"

int main(void) {
	uint8_t duty = 30; //1~100
	uint32_t freq = 10; // 10Hz~1kHz,step=10Hz
    CLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH);
    BOARD_InitPins();
    BOARD_BootClockPLL150M();
    BOARD_InitDebugConsole();
    BOARD_InitBootPeripherals();

    SCTIMER_StopTimer(SCT0_PERIPHERAL, kSCTIMER_Counter_L);
    PRINTF("\r\nPWM OUTPUT SCT0_CLOCK_FREQ=%d",SCT0_CLOCK_FREQ);
    SCTIMER_SetupPwm(SCT0_PERIPHERAL, &SCT0_pwmSignalsConfig[0], kSCTIMER_EdgeAlignedPwm, freq, SCT0_CLOCK_FREQ, &SCT0_pwmEvent[0]);
    SCTIMER_UpdatePwmDutycycle(SCT0_PERIPHERAL, SCT0_OUTPUT_2,duty, SCT0_pwmEvent[0]);
    SCTIMER_StartTimer(SCT0_PERIPHERAL, kSCTIMER_Counter_L);

    while (1)
    {
    }
}

四、说明。

1、使用。

改变freq和duty两个参数,即可输出不同参数的PWM。

2、分频系数。

其中,分频系数要根据需求来设置,如下图所示。

这里输出的频率较低,所以设置的分频系数较大,要输出高频率,可以调小分频系数,这里没有公式,多试几次就好。

3、输出固定低电平。

要想输出低电平(0%占空比或0频率),可以调用以下函数。

SCTIMER_StopTimer(SCT0_PERIPHERAL, kSCTIMER_Counter_L);

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!