打印

奇怪的PWM现象

[复制链接]
2855|36
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vaiting|  楼主 | 2017-7-10 17:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
void Pluses(void)                                                                        //励磁脉冲设置     P10.4与P10.5
{
        const Timer_A_PWMConfig pwmConfig30 =                     //TA3.0  P10.4
                {
                        TIMER_A_CLOCKSOURCE_ACLK,                        //选择为ACLK时钟
                        TIMER_A_CLOCKSOURCE_DIVIDER_1,                    //1分频
                               5240,                                           //周期
                            TIMER_A_CAPTURECOMPARE_REGISTER_0,                //选择通道0
                        TIMER_A_OUTPUTMODE_TOGGLE_RESET,            //电平方式
                        2620,                                              //周期
                };

        const Timer_A_PWMConfig pwmConfig31 =                     //TA3.1  P10.5
                {
                        TIMER_A_CLOCKSOURCE_ACLK,                        //选择为ACLK时钟
                        TIMER_A_CLOCKSOURCE_DIVIDER_1,                    //1分频
                               5240,                                           //周期
                            TIMER_A_CAPTURECOMPARE_REGISTER_1,                //选择通道1
                        TIMER_A_OUTPUTMODE_TOGGLE_SET,                    //电平方式
                        2620,                                              //周期
                };

                GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P10,GPIO_PIN4,GPIO_PRIMARY_MODULE_FUNCTION);
                Timer_A_generatePWM(TIMER_A3_MODULE, &pwmConfig30);

                GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P10,GPIO_PIN5,GPIO_PRIMARY_MODULE_FUNCTION);
                Timer_A_generatePWM(TIMER_A3_MODULE, &pwmConfig31);


}
各位路过的大神,请看上面的例程。
执行后,P10.4口,没有脉冲串。P10.5口,有6.25Hz脉冲串。
还请高手帮忙看看,到底啥问题?谢谢

相关帖子

沙发
mcu5i51| | 2017-7-10 17:23 | 只看该作者
没有用过这个类型片子,经验是检查IO状态,复用等

使用特权

评论回复
板凳
mcu5i51| | 2017-7-10 17:24 | 只看该作者
430 的好像还有时钟有些默认是关的

使用特权

评论回复
地板
vaiting|  楼主 | 2017-7-10 17:24 | 只看该作者
我是用的是MSP432P401,使用固件函数库编写程序。

使用特权

评论回复
5
vaiting|  楼主 | 2017-7-10 17:27 | 只看该作者
我将TIMER_A_CAPTURECOMPARE_REGISTER_0,改为TIMER_A_CAPTURECOMPARE_REGISTER_4。
GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P10,GPIO_PIN4,GPIO_PRIMARY_MODULE_FUNCTION)改为 GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P9,GPIO_PIN3,GPIO_PRIMARY_MODULE_FUNCTION);
就能正常发出脉冲串。
我原来以为P10.4口坏了,将这个口强行置位,是正常的,证明口没有问题。

使用特权

评论回复
6
vaiting|  楼主 | 2017-7-10 17:28 | 只看该作者
mcu5i51 发表于 2017-7-10 17:23
没有用过这个类型片子,经验是检查IO状态,复用等

IO没有复用。两路PWM,分别使用10.4P和10.5P。

使用特权

评论回复
7
vaiting|  楼主 | 2017-7-10 17:37 | 只看该作者
mcu5i51 发表于 2017-7-10 17:24
430 的好像还有时钟有些默认是关的

TIMER_A_CLOCKSOURCE_ACLK,两个结构体同时使用的ACLK作为两个PWM口的时钟源。所以,应该不是您怀疑的原因。

使用特权

评论回复
8
dirtwillfly| | 2017-7-10 20:19 | 只看该作者
奇怪的问题。把TA3.0换一个输出模式试试

使用特权

评论回复
9
@若水| | 2017-7-11 08:37 | 只看该作者
查看IO复用功能是否已打开

使用特权

评论回复
10
vaiting|  楼主 | 2017-7-11 08:44 | 只看该作者
@若水 发表于 2017-7-11 08:37
查看IO复用功能是否已打开

你好。我用的P10.4P10.5,没有复用IO。您再给看看程序,有什么问题

使用特权

评论回复
11
vaiting|  楼主 | 2017-7-11 08:55 | 只看该作者
dirtwillfly 发表于 2017-7-10 20:19
奇怪的问题。把TA3.0换一个输出模式试试

版主啊,我已经被这些奇怪的问题,折腾的精疲力尽

使用特权

评论回复
12
存在的| | 2017-7-11 13:18 | 只看该作者

使用特权

评论回复
13
fhsxycq| | 2017-7-11 16:05 | 只看该作者
看看是不是配置第二路PWM的时候把第一路的配置清掉了

使用特权

评论回复
14
f747| | 2017-7-11 16:36 | 只看该作者
pwmConfig30 配置这句有问题:
TIMER_A_OUTPUTMODE_TOGGLE_RESET,            //电平方式

使用特权

评论回复
15
宇宙星辰| | 2017-7-11 17:00 | 只看该作者
f747 发表于 2017-7-11 16:36
pwmConfig30 配置这句有问题:
TIMER_A_OUTPUTMODE_TOGGLE_RESET,            //电平方式

正解

使用特权

评论回复
16
vaiting|  楼主 | 2017-7-11 17:18 | 只看该作者
f747 发表于 2017-7-11 16:36
pwmConfig30 配置这句有问题:
TIMER_A_OUTPUTMODE_TOGGLE_RESET,            //电平方式

我的注释不正确。
我也发现调整了P10.4和P10.5的配置顺序,结果不一样。
请问,我是用了两个CCR寄存器,怎么会出现这种异常?怎么解决呢?

使用特权

评论回复
17
vaiting|  楼主 | 2017-7-11 17:19 | 只看该作者

我的注释不正确。
我也发现调整了P10.4和P10.5的配置顺序,结果不一样。
请问,我是用了两个CCR寄存器分别对两个口进行配置,怎么会出现这种异常?怎么解决呢?

使用特权

评论回复
18
dirtwillfly| | 2017-7-11 21:24 | 只看该作者
你用的什么版本的库?
官网最新的手册里,参数定义和你的不一样

使用特权

评论回复
19
vaiting|  楼主 | 2017-7-12 08:34 | 只看该作者
dirtwillfly 发表于 2017-7-11 21:24
你用的什么版本的库?
官网最新的手册里,参数定义和你的不一样

版主这两种:TIMER_A3_BASE和TIMER_A3_model,是一样的,前者版本早一些后者晚一些。谢谢
15楼的帖子,我没有看懂,能否请细致的分析讲解一下。

使用特权

评论回复
20
vaiting|  楼主 | 2017-7-12 08:44 | 只看该作者
f747 发表于 2017-7-11 16:36
pwmConfig30 配置这句有问题:
TIMER_A_OUTPUTMODE_TOGGLE_RESET,            //电平方式

你好大神,我的目的是用TA3.0TA3.1发出同频反相的脉冲串,所以输出模式的配置采用了TOGGLE_SET和TOGGLE_RESET。请问,这样使用有什么问题呢?我是用了两个CCR寄存器,怎么会出现初始化一个口会影响另一个口呢?谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

70

帖子

1

粉丝