本程序主要实现了通过按键选择电机的正转或反转,选择完后,通过up键,加快电机的转速(增大占空比),down键来降低电机的转速。
本例程的扩展部分:将按键用外接的电位器来控制,类似于汽车转动方向盘,电机就转到,转动角度越大,转动的速度就越大。
1 •设置PWM时钟配置
2• 使能PWM模块 和 GPIO
3• 设置相应的GPIO口供PWM使用
4•配置PWM发生器
5•设置PWM模块频率
6•设置PWM0的占空比
7•使能PWM0输出
8•使能PWM模块
在试验中 用到的驱动函数有:
1• 设置PWM时钟配置:
SysCtlPWMClockSet(SYSCTL_PWMDIV_1);
2• 使能PWM模块 和 GPIO
SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
3• 设置F0口 和G0口供PWM使用
GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_0);
GPIOPinTypePWM(GPIO_PORTB_BASE, GPIO_PIN_0);
估算PWM频率
ulPeriod = SysCtlClockGet()/100;
4•配置PWM模块
PWMGenConfigure(PWM_BASE, PWM_GEN_0,
PWM_GEN_MODE_UP_DOWN | PWM_GEN_MODE_NO_SYNC);
5• 设置PWM模块0频率
PWMGenPeriodSet(PWM_BASE, PWM_GEN_0, ulPeriod);
配置PWM模块
PWMGenConfigure(PWM_BASE, PWM_GEN_1,
PWM_GEN_MODE_UP_DOWN | PWM_GEN_MODE_NO_SYNC);
设置PWM模块0频率
PWMGenPeriodSet(PWM_BASE, PWM_GEN_1, ulPeriod);
6•设置PWM0的占空比
PWMPulseWidthSet(PWM_BASE, PWM_OUT_0, ulPeriod * 1/10);
设置PWM0的占空比
PWMPulseWidthSet(PWM_BASE, PWM_OUT_2, ulPeriod *1/10 );
7•使能PWM0和PWM2输出
PWMOutputState(PWM_BASE, PWM_OUT_0_BIT | PWM_OUT_2_BIT, true);
8•使能PWM模块0和1
PWMGenEnable(PWM_BASE, PWM_GEN_0);
PWMGenEnable(PWM_BASE, PWM_GEN_1);
motor.rar
(299.36 KB, 下载次数: 261)