打印
[CC2640]

cc2640 之PWM

[复制链接]
395|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
磨砂|  楼主 | 2019-12-31 14:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、PWM?
答:PWM–脉冲宽度调制简称,通过调整PWM的占空比来实现电机转动速度、led亮度。它是由定时器配置产生的高低为1,0的脉冲波。

2、原理:CC2640有4个定时器,每个定时器可以配置A、B两路PWM输出脉冲。首先配置定时器为PWM模式,和设置波峰,则产生周期性的斜面波;再设置比较值,周期性的斜面波根据设置的比较值最终产生周期性的高低为1、0的PWM脉冲波,具体步骤如下:

第一步:PWM波输出引脚配置:

引脚配置:上拉输出
PIN_Config timerPinTable_LEDR[] = { PWM_LEDR | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_INPUT_DIS | PIN_DRVSTR_MAX,
PIN_TERMINATE };

//打开引脚
hPin_LEDR = PIN_open(&pinState, timerPinTable_LEDR);

//引脚与定时器事件映射
PINCC26XX_setMux(hPin_LEDR, PWM_LEDR, IOC_PORT_MCU_PORT_EVENT0);

第二步:配置定时器1中的A路PWM波

//定时器1电源设置
Power_setDependency(PERIPH_GPT0);
//配置定时器脉宽调制PWM模式,输出A路PWM波
TimerConfigure(GPT0_BASE, TIMER_CFG_SPLIT_PAIR|TIMER_CFG_A_PWM);

//设置定时器输出斜面波的波峰 TIMER_LOADSET
TimerLoadSet(GPT0_BASE, TIMER_A, TIMER_LOADSET);

//设置定时器输出斜面波的比较值
TimerMatchSet(GPT0_BASE, TIMER_A, TIMER_MATCH);

//设置定时器触发方式
TimerEventControl(GPT0_BASE, TIMER_A, TIMER_EVENT_NEG_EDGE);

//使能定时器:
TimerEnable(GPT0_BASE,TIMER_A);


使用特权

评论回复

相关帖子

沙发
wiba| | 2020-1-6 10:47 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
板凳
zljiu| | 2020-1-6 10:51 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
地板
coshi| | 2020-1-6 10:55 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
5
gwsan| | 2020-1-6 11:20 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
6
kxsi| | 2020-1-6 11:24 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
7
nawu| | 2020-1-6 11:31 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
8
qcliu| | 2020-1-6 11:34 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
9
tfqi| | 2020-1-6 11:38 | 只看该作者
非常感谢楼主分享

使用特权

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

本版积分规则

94

主题

4126

帖子

2

粉丝