天天看点

[nRF51822] 12、基础实验代码解析大全 · 实验19 - PWM

一、PWM概述:

  PWM(Pulse Width Modulation):脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形。

  PWM 的几个基本概念:

1) 占空比:占空比是指在一个周期内,信号处于高电平的时间占整个信号周期的百分比,方波的占空比是50%。

2) 调制频率:周期的倒数。

3) 脉冲宽度:信号处于高电平的时间。

二、nRF51822的PWM产生:

  NRF51822 通过Timer、PPI 和GPIOTE 的配合实现PWM 的功能,由Timer 产生一个事件,PPI 捕获这个事件并把这个事件转化为任务传递给GPIOTE, GPIOTE 模块根据传递过来额任务执行操作。NRF51822 实现PWM 的原理框图如下图所示:

[nRF51822] 12、基础实验代码解析大全 · 实验19 - PWM

  由上图可以看出,实现PWM 功能,需要使用2 个CC 通道,通过设定CC[0]和CC[1]通道的比较值,让他们在不同的时间产生比较值匹配事件,从而触发GPIOTE 模块控制管脚在设定的时间点输出高电平和低电平,这样,就可以产生不同脉冲宽度的输出信号,即PWM 输出信号。

三、代码解析:

main:

<a></a>

注:PWM参数配置宏定义如下

注:PWM回调函数如下

@nRF51822基础实验系列:

<a href="http://www.cnblogs.com/zjutlitao/p/5750342.html" target="_blank">[nRF51822] 7、基础实验代码解析大全(前十)</a>

<a href="http://www.cnblogs.com/zjutlitao/p/5752520.html" target="_blank">[nRF51822] 8、基础实验代码解析大全 · 实验11 - PPI</a>

<a href="http://www.cnblogs.com/zjutlitao/p/5753079.html" target="_blank">[nRF51822] 9、基础实验代码解析大全 · 实验12 - ADC</a>

<a href="http://www.cnblogs.com/zjutlitao/p/5753994.html" target="_blank">[nRF51822] 10、基础实验代码解析大全 · 实验15 - RTC</a>

<a href="http://www.cnblogs.com/zjutlitao/p/5755203.html">[nRF51822] 11、基础实验代码解析大全 · 实验16 - 内部FLASH读写</a>

本文转自beautifulzzzz博客园博客,原文链接:http://www.cnblogs.com/zjutlitao/p/5755227.html,如需转载请自行联系原作者

继续阅读