单片机学习(三)——PWM学习(主要以cc3200为例)

2024-02-20 12:18

本文主要是介绍单片机学习(三)——PWM学习(主要以cc3200为例),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

脉冲宽度调制(PWM)是英文 Pulse WidthModulation 的缩写,是利用微控制器的数字输出,来对模拟电路进行控制的一种非常有效的技术。使用高分辨率计数器产生一个方波,方波的占空比被调制成一个模拟信号的编码。

cc3200的例程PWM是呼吸灯,通过调节方波的占空比改变灯泡的亮度,从而实现呼吸灯的效果,下面是主函数:

void main()
{int iLoopCnt;BoardInit();PinMuxConfig();    //// Initialize the PWMs used for driving the LEDs//InitPWMModules();while(1){for(iLoopCnt = 0; iLoopCnt < 255; iLoopCnt++){UpdateDutyCycle(TIMERA2_BASE, TIMER_B, iLoopCnt);UpdateDutyCycle(TIMERA3_BASE, TIMER_B, iLoopCnt);UpdateDutyCycle(TIMERA3_BASE, TIMER_A, iLoopCnt);MAP_UtilsDelay(800000);//延时子程序(短暂延时)}}
}

在主函数中需要使用到的主要函数有:PinMuxConfig(void){   }该函数是用来配置PWM引脚的

void
PinMuxConfig(void)
{MAP_PRCMPeripheralClkEnable(PRCM_TIMERA2, PRCM_RUN_MODE_CLK);//设置时钟MAP_PinTypeTimer(PIN_64, PIN_MODE_3);//设置引脚以及工作模式(在工作模式是3时只能对外输出)
}

具体参考表格如下所示:

 

主函数中的 InitPWMModules(    );是初始化PWM的,函数内的主要函数是SetupTimerPWMMode(unsigned long ulBase, unsigned long ulTimer,unsigned long ulConfig, unsigned char ucInvert)


void SetupTimerPWMMode(unsigned long ulBase, unsigned long ulTimer,unsigned long ulConfig, unsigned char ucInvert)
{//// Set GPT - Configured Timer in PWM mode.//MAP_TimerConfigure(ulBase,ulConfig);// 配置定时器工作在 PWM 模式MAP_TimerPrescaleSet(ulBase,ulTimer,0);// 设置预分频值//// Inverting the timer output if required//MAP_TimerControlLevel(ulBase,ulTimer,ucInvert);// 配置 PWM 输出的电平值//// Load value set to ~0.5 ms time period//MAP_TimerLoadSet(ulBase,ulTimer,TIMER_INTERVAL_RELOAD);//配置 PWM 周期//// Match value set so as to output level 0//MAP_TimerMatchSet(ulBase,ulTimer,TIMER_INTERVAL_RELOAD);// 配置匹配值,即占空比(当定时器计数到此值时,输出某一电平)}

在上段代码内可以通过调节预分频的值将时钟等等整个周期进行调整,因为要控制舵机,能驱动舵机需要每20毫秒(ms)看到一个脉冲,而脉冲长度将决定电机转动的距离。例程中的周期达不到20ms所以要调整预分频来控制周期时间(最后能驱动舵机了,但关于里面的运算我理解的还不是很清楚)分频系数只有16位定时器才能设置,当使用32位的定时器时,设置为0。要调整整个时间周期,调整预分频,要调整占空比调整TIMER_INTERVAL_RELOAD。

主函数中的iLoopCnt是循环调节的步长,要确定需要输出pwm的周期。比如说0.5ms,据此确定定时器装载的初始值。(0.5*10的-3次方)/(1/80M) = 40000,如果考虑输出占空比可调,首先需要考虑需要输出多少级可调?比如说100级可调,意思就是LED的亮度有100个等级。那么40000/100 = 400,这个就是每次调节的步长。

最后,放一张整个的功能流程图,祝福大家玩的开心哦~

这篇关于单片机学习(三)——PWM学习(主要以cc3200为例)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/728192

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

便携式气象仪器的主要特点

TH-BQX9】便携式气象仪器,也称为便携式气象仪或便携式自动气象站,是一款高度集成、低功耗、可快速安装、便于野外监测使用的高精度自动气象观测设备。以下是关于便携式气象仪器的详细介绍:   主要特点   高精度与多功能:便携式气象仪器能够采集多种气象参数,包括但不限于风速、风向、温度、湿度、气压等,部分高级型号还能监测雨量和辐射等。数据采集与存储:配备微电脑气象数据采集仪,具有实时时钟、数据存

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略 1. 特权模式限制2. 宿主机资源隔离3. 用户和组管理4. 权限提升控制5. SELinux配置 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes的PodSecurityPolicy(PSP)是一个关键的安全特性,它在Pod创建之前实施安全策略,确保P

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识