我需要帮助、我必须使用编码器控制位置直流电机、我找不到用于 PWM 转 tVAC tm4c123gpm 的基本代码我使用 code composer 进行编程
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我需要帮助、我必须使用编码器控制位置直流电机、我找不到用于 PWM 转 tVAC tm4c123gpm 的基本代码我使用 code composer 进行编程
我首先尝试控制速度、
这是我的代码
#include
#include
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
#include "driverlib/debug.h"
#include "driverlib/pwm.h"
#include "driverlib/pin_map.h"
#include "inc/hw_gpio.h"
#include "driverlib/rom.h"
#include "driverlib/adc.h"
#define PWM_FREQUENCY 55
int main (空)
{
volatile uint32_t ui32Load;
volatile uint32_t ui32PWMClock;
uint32_t ui32ADC0Value[1];
volatile uint8_t ui8Adcust;
SysCtlClockSet (SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN|SYSCTL_XTAL_16MHz);
SysCtlPWMClockSet (SYSCTL_PWMDIV_64);
SysCtlPeripheralEnable (SYSCTL_Periph_PWM1);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD);
GPIOPinTypePWM (GPIO_PORTD_BASE、GPIO_PIN_0);
GPIOPinConfigure (GPIO_PD0_M1PWM0);
ui32PWMClock = SysCtlClockGet ()/64;
ui32Load =(ui32PWMClock/PWM_FREQUENCY)- 1;
PWMGenConfigure (PWM1_base、PWM_GEN_0、PWM_GEN_MODE_DOWN);
PWMGenPeriodSet (PWM1_base、PWM_GEN_0、ui32Load);
PWMOutputState (PWM1_base、PWM_OUT_0_bit、true);
PWMGenEnable (PWM1_base、PWM_GEN_0);
SysCtlPeripheralEnable (SYSCTL_Periph_ADC0);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOE);
GPIOPinTypeADC (GPIO_Porte _BASE、GPIO_PIN_3);
ADCSequenceConfigure (ADC0_BASE、3、ADC_TRIGGER_PROCESSOR、0);
ADCSequenceStepConfigure (ADC0_BASE、3、0、ADC_CTL_CH0 | ADC_CTL_IE |ADC_CTL_END);
ADCSequenceEnable (ADC0_BASE、3);
while (1)
{
ADCIntClear (ADC0_BASE、3);
ADCProcessorTrigger (ADC0_BASE、3);
while (!ADCIntStatus (ADC0_BASE、3、false))
{
}
ADCSequenceDataGet (ADC0_BASE、3、ui32ADC0Value);//监视 ui32ADC0Value
ui8Adcy=ui32ADC0Value[0];
PWMPulseWidthSet (PWM1_base、PWM_OUT_0、ui8Adust * ui32Load / 500);
SysCtlDelay (100000);
}
}
但我认为 PWMPulseWidthSet (PWM1_base、PWM_OUT_0、ui8Adust * ui32Load /500)这一行中的问题电机改变了速度、但并不正常
我已连接一个 CCS7.3项目、该项目读取 AIN0上的值并以40KHz 在 M0PWM2上输出 PWM。
/cfs-file/__key/communityserver-discussions-components-files/81/Forum646554.zip