关于PWM相关问题
各位大师我有个问题关于PWM方面的:首先我用PWMBCC7/CC8捕获一个波形的上升沿和下降沿程序设定如下:
//设定PWMB捕获P3^4脚波形,并初始化程序
void PWMB_INIT()
{
PWMB_PS = 0x40; //设定P3^4脚为捕获引脚
PWMB_CCER2 = 0x00; //先清零后写入
PWMB_CCMR3 = 0x42; // 配置了一个0.4us的滤波器,抗干扰
PWMB_CCMR4 = 0x41; //(滤波器16;CC1连续捕获映射到TI1FP上)
PWMB_CCER2 = 0x31; //CC7捕获上升沿,CC8捕获下降沿
PWMB_IER = 0x18; //启动CC7/CC8捕获中断
PWMB_CR1 = 0x01; //启动定时器
IP2 |= 0x08; //中断优先级3最高级
IP2H |= 0x08; //中断优先级3最高级
}
其次我用PWMB的ENO5P比较输出一个4KHZ方波程序如下:
void PWMB_Init_4kHz(void)
{
//PWMB_PS = 0xfc; //高级PWM功能脚切换寄存器;切换至P2.0脚;
PWMB_CCER1 = 0x00; //操作前必须要先清零;
PWMB_CCMR1 = 0x60; //捕获/比较模式寄存器;
PWMB_CCER1 = 0x01; //捕获/比较使能寄存器;
PWMB_PSCR = 0x0e; //预分频寄存器,可以和PWMB_ARR共同决定分频值,从而决定输出波形的频率或周期
PWMB_CCR5 = 250; //捕获比较寄存器,可以用来设置波形的占空比;
PWMB_ARR = 0x01f3; //自动从装载寄存器,用来设置预分频值,从而设定输出波形的周期值;
PWMB_ENO = 0x01; //输出使能寄存器,使能PWM1P输出;
PWMB_CR1 = 0x01; //控制寄存器,使能计数;
PWMB_BKR = 0x80; //刹车寄存器,主输出使能开启;
}
另外我用PWMA做一个精度为1us,的定时器,用来记录CC7/CC8捕获的时间;
// PWM变换定时器初始化函数
void PWM_Transform_Timer_Init(void)
{
PWMA_PSCRH = 0x00; // 1Mhz输出,分频因子1/30,1us定时精度;预分频器的预分频值29,30000000/(29+1)=1000000hz,1us定时精度
PWMA_PSCRL = 0x1d;
PWMA_ARRH = 0xff; //计数值并不会超出上限,所以设置成0xff;
PWMA_ARRL = 0xff;
}
结果发现4KHZ方波不能正常输出了,单独实验是可以正常输出的,我觉得是不是和设定中有冲突,但不知道怎么解决
请大师们帮我分析一下
关于PWM相关问题,您提到的设置和问题需要进一步分析和验证。以下是对您提到的PWM相关问题的回复:
1. 关键点分析
您提到的PWMBCC7/CC8捕获和比较,以及对应的中断处理,可能涉及以下几个关键点:
(1) 捕获和比较模式设置
您在PWMBINIT函数中设置了CCER1和CCER2,用于控制中断和比较。您提到CCER2的设置为0x31,这可能与中断优先级有关。建议您确认中断优先级和中断处理逻辑是否正确。
(2) 滤波器设置
您在PWMBCCMR5和PWMBCCMR4中设置了滤波器配置。CCM5设置为250,这可能会影响波形的滤波效果。建议您确认滤波器的类型和参数是否符合TurboCode的规范。
(3) 柔合脚设置
您在PWMBPSCR中设置了预分频寄存器,可以与CCR5(分频值)共同决定分频值。建议您确认预分频设置是否合理,确保波形频率符合用户需求。
(4) 激活条件
您提到ICR5和ICR6的设置为0x18,这可能与中断条件有关。建议您确认这些条件是否正确,确保中断处理高效且不会导致波形不稳定。
2. 备选设置和建议
如果您希望实现4kHz的波形,以下是一些备选设置和建议:
备选设置
CCR5:设置为80(频率为1.25kHz)或更高,以确保波形频率稳定。
CCM5:设置为80或更高,以提高滤波效果。
CCR6:设置为0x00或更高,以避免过滤。
CCM6:设置为0x00或更高,以避免过滤。
中断处理
建议您在中断处理中设置以下条件:
ICR5:设置为0x30(中断优先级为1,最高级)。
ICR6:设置为0x30(中断优先级为1,最高级)。
中断信号:设置为0x01,确保中断信号优先处理。
预分频设置
建议您在预分频寄存器(PWMBPSCR)中设置为0x00,以避免预分频干扰。
3. 建议
如果您需要进一步优化波形,建议您进行以下步骤:
1. 调试中断处理:使用TurboCode的中断调试工具,查看中断信号和中断处理情况。
2. 检查滤波效果:确保滤波器的类型和参数符合TurboCode的规范。
3. 验证预分频设置:确保预分频设置不会干扰到波形。
结论
您提到的设置和问题需要进一步验证和调试。建议您按照以上备选设置和建议进行调整,并利用TurboCode的工具进行调试和验证。如果仍然存在问题,请提供更多详细信息,以便进一步诊断和优化。
希望以上回复对您有所帮助!如果还有其他问题,请随时告诉我。
[本文内容由国芯人工智能辅助生成,仅供参考] 国芯人工智能 发表于 2025-6-16 11:58
关于PWM相关问题,您提到的设置和问题需要进一步分析和验证。以下是对您提到的PWM相关问题的回复:
1. 关 ...
明白我再试试,谢谢大师
页:
[1]