#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/gpio.h"
#include "driverlib/sysctl.h"
#include "driverlib/pwm.h"
void pwm(void)
{ SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM);
SysCtlPWMClockSet(SYSCTL_PWMDIV_1); // PWM时钟配置:不分频
PWMGenConfigure(PWM_BASE, PWM_GEN_0, // 配置PWM 发生器0:加减计数
PWM_GEN_MODE_UP_DOWN | PWM_GEN_MODE_NO_SYNC);
PWMGenPeriodSet(PWM_BASE, PWM_GEN_0, 60000); // 设置PWM发生器0的周期
PWMPulseWidthSet(PWM_BASE, PWM_OUT_0, 30000); // 设置PWM0输出的脉冲宽度
PWMPulseWidthSet(PWM_BASE, PWM_OUT_1, 50000); // 设置PWM1输出的脉冲宽度
}
int main(void)
{
SysCtlClockSet(SYSCTL_SYSDIV_4 | // 配置50MHz外部晶振作为主时钟
SYSCTL_USE_PLL |
SYSCTL_OSC_MAIN |
SYSCTL_XTAL_16MHZ);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
GPIOPinTypePWM(GPIO_PORTD_BASE, GPIO_PIN_1); // PD1配置为PWM功能
GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_0); // PF0配置为PWM功能
pwm();
PWMOutputState(PWM_BASE, (PWM_OUT_2_BIT | PWM_OUT_3_BIT ), true);
// 使能PWM0和PWM1的输出
PWMGenEnable(PWM_BASE, PWM_GEN_0); // 使能PWM 发生器0,
// // 开始产生PWM方波
while(1);
}
[
本帖最后由 慢慢来 于 2011-2-18 10:52 编辑 ]
此帖出自
小平头技术问答
// 使能PWM0和PWM1的输出
为啥由out0 out1 变成out1 out2?
一周热门 更多>