OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 22415|回复: 10

PWM模式1与PWM模式2有何区别?

[复制链接]

5

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2012-4-15
在线时间
4 小时
发表于 2012-5-23 17:01:06 | 显示全部楼层 |阅读模式

我软件仿真这两种模式发现输出波形一样,谁能告诉我他们的区别?

void Tim3_init(u16 arr,u16 psc)
{
    RCC->APB2ENR|=1<<4;    //使能PORTC时钟
    RCC->APB1ENR|=1<<1;//使能定时器3
     RCC->APB2ENR|=1<<0;     //开启辅助时钟    
    AFIO->MAPR&=0XFFFFF3FF; //清除MAPR的[11:10]
    AFIO->MAPR|=3<<10;      //完全重映像,TIM3_CH1/PC6,CH2/PC7,CH3/PC8,CH4/PC9
  
    GPIOC->CRL&=0X00FFFFFF;//PC6/7输出
    GPIOC->CRL|=0XBB000000;//复用功能输出    
    GPIOC->ODR|=3<<6;//PC6/7上拉

    TIM3->ARR=arr;//设置重装值
    TIM3->SC=psc;//设置预分频

    TIM3->CR1=0x8000;   //ARPE使能,自动重装载使能
    TIM3->CCMR1|=1<<3; //输出比较1预装载使能
    TIM3->CCMR1|=1<<11; //输出比较2预装载使能

    TIM3->CCER |= 1<<0;//OC1信号输出到对应的输出引脚。
    TIM3->CCER |= 1<<5; //OC2信号输出到对应的输出引脚。

    TIM3->CCMR1|=3<<5;//110:PWM模式1- 在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为有效电平,否则为无效电平;
    TIM3->CCMR1|=7<<12;//111:PWM模式2- 在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道2为无效电平,否则为有效电平;

    TIM3->CCER|=1<<0;   //OC1 输出使能
    TIM3->CCER|=1<<4;   //OC2 输出使能

    TIM3->CCR1 = 900;
    TIM3->CCR2 = 900;
    TIM3->EGR |= 1<<1;  //CC1G:产生捕获/比较1事件
    TIM3->EGR |= 1<<2;  //CC2G:产生捕获/比较2事件

    TIM3->CR1|=1<<0;   //开启定时器TIM3
}


 

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-5-23 17:21:15 | 显示全部楼层
就是电平极性不一样.
你的注释不写着么?
但是输出波形应该相反才对...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2012-4-15
在线时间
4 小时
 楼主| 发表于 2012-5-26 21:34:02 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
是啊   但仿真输出波形却一样,真奇怪   
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
发表于 2012-5-28 12:51:04 | 显示全部楼层
回复【3楼】liushuifong:
---------------------------------
额 应该是相反的吧,用实际的来看看呢,我个人感觉软件仿真出错的可能性很大,以前在学AVR的时候和PRTEUS都出现了各种错误。。。。。。。。。
用来输出给分别的两个灯嘛,看它们的亮暗程度、、、上次我做了一个方波控制器,有个键可以用来调换极性,就是通过PWM1和PWM2来调换极性的
回复 支持 反对

使用道具 举报

12

主题

432

帖子

0

精华

高级会员

Rank: 4

积分
729
金钱
729
注册时间
2012-6-21
在线时间
59 小时
发表于 2013-7-17 14:04:21 | 显示全部楼层
mark。
回复 支持 反对

使用道具 举报

3

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2014-1-25
在线时间
10 小时
发表于 2014-1-25 12:43:06 | 显示全部楼层
回复【楼主位】liushuifong:
---------------------------------
应该是因为没有设置输入极性吧.
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2016-11-11
在线时间
8 小时
发表于 2017-1-22 11:27:04 | 显示全部楼层
新手前来学习
回复 支持 反对

使用道具 举报

13

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2016-11-15
在线时间
38 小时
发表于 2017-1-22 11:57:45 | 显示全部楼层
liushuifong 发表于 2012-5-26 21:34
回复【2楼】正点原子:
---------------------------------
是啊&nbsp;&nbsp;&nbsp;但仿真输出波形却一样, ...

你要是占空比设置成50%那肯定一样啊
回复 支持 反对

使用道具 举报

4

主题

144

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
345
金钱
345
注册时间
2017-1-18
在线时间
80 小时
发表于 2017-1-29 12:21:15 | 显示全部楼层
看手册
回复 支持 反对

使用道具 举报

1941772141 该用户已被删除
发表于 2017-4-17 16:22:34 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2017-10-18
在线时间
4 小时
发表于 2018-7-18 11:01:16 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-16 19:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表