LPC1788单沿pwm原理和配置

pwm的基本功能:以一定的周期频率,输出不同占空比可调的方波。

Lpc1788中的pwm的时钟(频率)来源于APB总线的时钟(频率),首先要进行分频,或者说预分频,不然直接由APB频率也太大了,肯定是需要通过分频才能达到我们需求的pwm周期频率。
        寄存器PWMPR 和PWMPC两个寄存器提供了APB频率分频到PWM中的频率,手册上讲的预分频,也是有道理的,因为到了pwm之后还要进行一次分频,第二次分频才是真正pwm的周期频率。我们把第一次分频得到频率暂且命名为prepwmclk。
        第二次分频是通过PWMMR0进行的,通过对prepwmclk的分频,这样得到了我们要的pwm的周期。
        还要去配置占空比,这个又是怎么做到的?
        Lpc1788出现了PWMMR1- PWMMR6,依照第二次分频的原理。
       比如PWMMR0配置为100,得到周期,那PWMMR1设置为50,得到1/2的占空比。当然

PWMMR1- PWMMR6对应的是6个不同的输出管脚,以此类推。

给个简单的例子:

PINSEL_ConfigPin (1, 18, 2);     //p1[18] as pwm1_1

    rPCONP |= 0x1<<6;     //使能PWM1外设  

    rPWM1IR = 0x73F;    //初始化PWM相关控制寄存器 

    rPWM1TCR = 0; 

    rPWM1CTCR = 0; 

    rPWM1MCR = 0; 

    rPWM1CCR = 0; 

    rPWM1PCR = 0; 

    rPWM1LER = 0; 

     

   // CLKPWR_GetCLK(CLKPWR_CLKTYPE_PER) / ((uint32_t)38000);

   /*实际频率计算方法:

       rPWM1PR = CLKPWR_GetCLK(CLKPWR_CLKTYPE_PER) / ((uint32_t)38*1000*rPWM1MR0)

    */

rPWM1PR = CLKPWR_GetCLK(CLKPWR_CLKTYPE_PER) / ((uint32_t)3800000); 

  //每CLKPWR_GetCLK(CLKPWR_CLKTYPE_PER) / ((uint32_t)38000);个PLCK上升沿,TC递增

 

rPWM1MR0 = 100;    //频率即100个rPWM1PR配置得到的频率为一周期所以如果需要38Khz的频率

rPWM1PR = CLKPWR_GetCLK(CLKPWR_CLKTYPE_PER) / ((uint32_t)38*1000*rPWM1MR0)

    rPWM1LER |= 0x1; 

   

    rPWM1MR1 = 50;    //占空比即50个rPWM1PR配置得到的频率为一周期中的高电平

    rPWM1LER |= 0x1<<1; 

 

    rPWM1MCR = 0;  

  

     

    rPWM1TCR |= 0x1<<1;   //复位TC和PC  

    rPWM1TCR &= ~(0x1<<1); 

     

    rPWM1TCR |= 0x1;    //PC和TC计数使能

    rPWM1PCR |= 0x1<<9; //PWM1-1使能输出

    rPWM1TCR |= 0x1<<3; //PWM模式使能

LPC1788单沿pwm原理和配置相关推荐

  1. 单臂路由的原理以及配置

    ** 单臂路由的原理以及配置 一:单臂路由原理 是指在路由器的一个接口上通过配置子接口(并不存在的物理接口)的方式,实现原来相互隔离的不同VLAN之间的互联互通.路由器的物理接口可以被划分成多个逻辑接 ...

  2. STM32 基础系列教程 7 - 单脉冲PWM

    前言 学习stm32 基本定时器的使用,用基本定时器实现产生一个PWM,实现单脉冲PWM的功能. 示例详解 基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是 STM32F103c ...

  3. 由浅入深学习Apache httpd原理与配置

    由浅入深学习Apache httpd原理与配置 原贴:http://jackcui.blog.51cto.com/11877206/1858989 文章防盗链地址:http://jackcui.blo ...

  4. 链路聚合的原理以及配置

    链路聚合的原理以及配置 一.链路聚合的概述 二.链路聚合的原理 三.链路聚合的配置 一.链路聚合的概述 链路聚合(Link Aggregation) 是将两个或更多数据信道结合成一个单个的信道,该信道 ...

  5. 微型计算机原理daa,单片微机原理、汇编与C51及接口技术(第2版)

    单片微机原理.汇编与C51及接口技术(第2版) 语音 编辑 锁定 讨论 上传视频 <单片微机原理.汇编与C51及接口技术(第2版)>是2013年清华大学出版社出版的图书,作者是朱定华.戴颖 ...

  6. pwm原理与stm32控制

    做一件事情之前,我们首先肯定是要了解这个东西是什么.我们才能去对它进行开发. 一.pwm原理 PWM是Pulse Width Modulation的缩写, 中文名字是脉冲宽度调制,一种说法是它利用微处 ...

  7. STM32 嵌入式学习入门(4)——PWM原理

    STM32 嵌入式学习入门(4)--PWM原理 本文先对STM32F103的通用定时器作一简单介绍,然后详细介绍通用定时器的一个应用--输出PWM波形的原理.整个文章以介绍"怎么用" ...

  8. stc15系列c语言pwm编程,STC单片机C语言程序设计 第25章 STC单片机增强型PWM原理及实现.docx...

    STC单片机C语言程序设计 第25章 STC单片机增强型PWM原理及实现 STC单片机增强型PWM发生器原理及应用主 讲:何宾Email:hebin@mail.buct.edu.cn2016.03增强 ...

  9. 单臂路由原理与实验详情

    文章目录 前言 一:单臂路由原理 1.1环境 1.2两台主机实现通信的原理(结合图片看,一遍就懂) 1.3总结 二:单臂路由实验 2.1 实验目的 2.2实验环境 2.3实验过程 前言 单臂路由(ro ...

最新文章

  1. 一文完全理解定时器实现技术
  2. 饿了么四年、阿里两年:研发路上的一些总结与思考
  3. (0064)iOS开发之枚举NS_ENUM和NS_OPTIONS的区别
  4. PHP——MySQL数据库分页查询
  5. tensorflow中name_scope和variable_scope变量的使用
  6. 【题解】 [HEOI2016]排序题解 (二分答案,线段树)
  7. Cocoa/iPhone App/静态库 嵌入资源文件 rtb v0.1发布
  8. 玩转springboot2.x之异步调用@Async
  9. 仅需10道题轻松掌握Python文件处理 | Python技能树征题
  10. 服务器搭建网站完整教程(宝塔面板+wordpress) 快速搭建网站 一键部署
  11. Mac便笺基本操作|便笺使用太鸡肋?那是你不知道这几个快捷键!
  12. iOS开发之算法加密md5,sha1,AES,base64
  13. Unity GC垃圾回收
  14. oracle rman异地备份,通过RMAN磁盘备份进行异地恢复
  15. Excel之表格斜线一分为二后输入文字
  16. 大连超级计算机,ASC19世界大学生超级计算机竞赛在我校圆满落幕
  17. ArcGIS:横向图例设置
  18. MSM8998(高通835处理器)外接指纹识别传感器linux驱动如何与设备树进行匹配
  19. 王者荣耀我的服务器没显示哪个区,王者荣耀怎么看自己在哪个区
  20. win10文件夹加密_纯UEFI电脑安装Win10 LTSB做全分区加密

热门文章

  1. 腾讯地图 省市区县 信息展示
  2. 1198:逆波兰表达式(递归)
  3. 清华大学丁霄汉:深度网络重参数化——让你的模型更快更强
  4. PHP接口的介绍与实现
  5. windows7系统损坏修复_重装系统是选择 ghost win7 还是原版 win7_windows7教程
  6. ZBrush Braid Brush 辫子笔刷——缎沫晗自制
  7. XShell 还是 FinalShell?
  8. AI打王者、星际争霸……你还不懂背后技术?这有一份游戏AI综述
  9. HEVC代码学习19:MV、MVD、MVP概念解析
  10. 高承实:做链改项目,想不清楚一定不会成功