RTL8762DK PWM(七)

2023-11-15

概述

        本示例,只要介绍,如何使用PWM,又离成功进了一步 ^_^。

一、环境

1、硬件  (RTL8762DK + 128M Bits Falsh)

2、软件(keil IDE)

二、PWM的使用

1、创建examples_ble_pwm工程,基于《examples_ble_wdg工程》来创建,创建步骤请参考第二篇文章。

2、新建pwm文件夹,分别存放pwm.c与pwm.h这两个文件

 1)、分别添加pwm.c与pwm.h到工程中

3、pwm.h

#ifndef _PWM_H_
#define _PWM_H_


#ifdef __cplusplus
extern "C" {
#endif

#include <stdint.h>
#include "board.h"
#include "rtl876x_tim.h"
#include "rtl876x_rcc.h"

/* Defines --------------------------------------------------------------*/
/** Define pwm output pin.
  * P0_1 is connected to LED0 on the EVB.
  */
#define PWM_OUT_PIN             P0_1
/** Define pwm complementary output pin.
  * P0_2 is connected to LED1 on the EVB.
  */
#define PWM_OUT_P_PIN           P0_2
#define PWM_OUT_N_PIN           P2_2


/** Define TIM num and pinmux of PWM output.
  * Timer2 to Timer7 all have PWM output function.
  * But only Timer2 and Timer3 support PWM complementary output function, other timers do not support it.
  * When the complementary output function is turned on, when the dead time is not set,
  * the complementary output PWM2_P of timer2 is in phase with PWM2, and PWM2_N and PWM2 are  inverted.
  * Timer3 is the same as timer2.
  */
#define PWM_TIMER_NUM           TIM2
#define PWM_OUT_PIN_PINMUX      timer_pwm2
#define PWM_OUT_P_PIN_PINMUX    PWM2_P
#define PWM_OUT_N_PIN_PINMUX    PWM2_N

/* Config PWM_PERIOD and PWM_DUTY_CYCLE */
#define PWM_PERIOD              1000000 //uint:us
#define PWM_DUTY_CYCLE          50      //uint:percent
/* PWM_HIGH_COUNT =  */
#define PWM_HIGH_COUNT          (((PWM_PERIOD)*((PWM_DUTY_CYCLE*40)/100))-1)    //PWM CLOCK = 40000000
#define PWM_LOW_COUNT           (((PWM_PERIOD)*(((100-PWM_DUTY_CYCLE)*40)/100))-1)

/** Config PWM_DEAD_ZONE_TIME. Max 8ms.
  * When dead time is set, PWM2_P and PWM2_N will
  * delay one dead time longer than PWM2 at high output level.
  * When the dead_zone time is longer than the high-level time of PWM,
  * PWM_P will always output low-level.
  * When the dead_zone time is longer than the low-level time of PWM,
  * PWM_N will always output low-level.
  */
#define PWM_DEAD_ZONE_TIME      1 //uint:ms
#define PWM_DEAD_ZONE_SIZE      ((PWM_DEAD_ZONE_TIME)*32-1)


void pwm_demo(void);

#ifdef __cplusplus
}
#endif


#endif

4、pwm.c

#include "pwm.h"




/**
  * @brief  Initialization of pinmux settings and pad settings.
  * @param  No parameter.
  * @return void
*/
void board_pwm_init(void)
{
    Pad_Config(PWM_OUT_PIN, PAD_PINMUX_MODE, PAD_IS_PWRON, PAD_PULL_NONE, PAD_OUT_ENABLE, PAD_OUT_HIGH);
    Pad_Config(PWM_OUT_P_PIN, PAD_PINMUX_MODE, PAD_IS_PWRON, PAD_PULL_
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RTL8762DK PWM(七) 的相关文章

随机推荐

  • 分布式环境下使用RSA算法实现登录密码的加密传输

    目录 效果 RSA介绍 实现思路 服务端实现 RSAService RSA算法的相关操作 RedisService 公钥和密钥的存储和获取 获取公钥的接口 客户端使用公钥加密 服务端使用私钥解密 效果 RSA介绍 RSA是一种非对称加密算法
  • 免费获取JetBrains一年全家桶

    原文链接 https blog csdn net li5672 article details 110231645 登录Github Education 点击Get benefits 点击Get student benefits 下一步以后
  • CHL同步队列是什么

    CHL同步队列就是AQS内部维护的一个FIFO双向队列 AQS依赖这个双向队列来完成同步状态的管理 如果当前线程获取同步状态失败 AQS将会将当前线程以及等待状态信息构建成一个节点 Node 并将其加入到同步队列中 同时会阻塞当前线程 当同
  • linux 创建 svn 库

    cd data svn mkdir p itvalue chown R windmaker windmaker itvalue svnadmin create data svn itvalue cd itvalue cd conf vim
  • android studio中的CMakeLists.txt,就是如此简单

    android studio中的CMakeLists txt 就是如此简单 user Linvest 目录 1 cmake minimum required VERSION 3 4 1 2 add library native lib SH
  • RabbitMQ简介与安装

    技术对比 MQ 中文是消息队列 MessageQueue 字面来看就是存放消息的队列 也就是事件驱动架构中的Broker 比较常见的MQ实现 ActiveMQ RabbitMQ RocketMQ Kafka 几种常见MQ的对比 Rabbit
  • Android的ADB工具使用

    在SDK的Tools文件夹下包含着Android模拟器操作的重要命令ADB ADB的全称为Android Debug Bridge 就是调试桥的作用 借助这个工具 我们可以管理设备或手机模拟器的状态 还可以进行以下的操作 1 快速更新设备或
  • react-antd中表格的使用(数据的请求,带删除功能的表格)

    前言 最近在学习react antd框架 表格这一块在项目中的使用频率很高 最近在学习这一块的内容 所以记录一下 基础表格请求数据 一般对于表格中的数据我们会进行请求 将请求到的数据存入表格中展示出来 当我们请求较少时可以这样写 const
  • AssetDatabase的方法

    静态函数 描述 AddObjectToAsset 添加对象到资产 AllowAutoRefresh 递减一个内部计数器 Unity使用它来决定是否允许自动的资产数据库刷新行为 AssetPathToGUID 获得资产的GUID ClearL
  • Unity 3D 资源下载

    Unity 3D 资源下载 你也可以在 Unity 3D 中执行 Window Asset Store 菜单命令直接访问 Unity 资源商店 Asset Store Unity 资源商店简介 Unity 资源商店https www ass
  • 为curl 、git、go语言、wget、repo设置代理,解决ubuntu 18.04编译chromium os问题

    为CURL设置proxy 设置代理的方式搜索了一下挺多的 我测试了这两种方式 这两种方式在ubuntu 18 04上可以运行 有两种方法 第一通过声明环境变量 export http proxy socks5h 127 0 0 1 1080
  • a 标签 onclick ( not a function)

    文章目录 说明 点击 download 点击 download1 说明 如图 download 在 body 下方声明 点击 download 则报错 download is not a function 点击 download1 则可以正
  • 【LeetCode刷题】

    菜鸡的LeetCode打怪记录 tips 本文涉及的一切内容仅本人学习使用 如不慎发生侵权行为 请滴滴我删除 谢谢 文章目录 菜鸡的LeetCode打怪记录 题目1480 Running Sum of 1d Array 思路 代码 评分结果
  • 合法ip算法实现——输入字符串,输出所有合法的ip

    输入为一串0 9之间的数字字符 不改变字符串中字符的前后顺序 输出所有合法的ip地址 IPV4下用一个32位无符号整数来表示一个ip地址 一般用点分方式来显示 点将ip地址分成4个部分 如 10 137 17 1 所以要输出所有合法ip 1
  • 2020暑假实习-百度前端一面&二面&三面

    2020暑假实习 百度前端一面 二面 三面 一面 算法题 JS实现二分搜索 随机打乱数组 HTML cookie localStorage sessionStorage区别 标签页之间的通信 cookie setInterval local
  • 合并升序链表系列(Java)

    LeetCode原题链接 21 合并两个有序链表 力扣 LeetCode 23 合并K个升序链表 力扣 LeetCode 目录 合并两个有序链表 题目表述 解法一 解法二 合并K个升序链表 题目描述 解法一 解法二 合并两个有序链表 题目表
  • 网络字节序与地址变换

    文章目录 1 主机字节序与网络字节序 2 字节序转换 Endian Conversions 1 主机字节序与网络字节序 CPU 向内存保存数据的方式有 2 2 2 种 这意味着 CPU 解析数据的方式也分为 2 2 2 种
  • unity3D-learnin:Priests and Devils

    阅读以下游戏脚本 Priests and Devils Priests and Devils is a puzzle game in which you will help the Priests and Devils to cross t
  • datagrip 查询结果不能修改

    正常情况下 查询出来的结果集都能直接修改 工具栏会出现 符号 且修改后会出现要提交的提示 向上的绿色箭头 且主键字段会有一把钥匙的标识 如图 凡事总有意外 今天发现库中的A表查询结果不能修改 但B表又是可以修改的 更奇怪的是直接双击A表 打
  • RTL8762DK PWM(七)

    概述 本示例 只要介绍 如何使用PWM 又离成功进了一步 一 环境 1 硬件 RTL8762DK 128M Bits Falsh 2 软件 keil IDE 二 PWM的使用 1 创建examples ble pwm工程 基于 exampl