飞思卡尔XS128模块初始化教程:系统时钟与PWM设置详解
5星 · 超过95%的资源 需积分: 9 45 浏览量
更新于2024-09-16
收藏 14KB DOCX 举报
本文档主要介绍了飞思卡尔XS128单片机中的两个关键模块初始化程序:系统时钟初始化和PWM初始化。这些程序在嵌入式系统开发中扮演着至关重要的角色,确保了硬件设备的正确配置和高效运行。
首先,我们来看"sys_init.h"头文件中定义的"int_systemclock()"函数。这个函数的主要目的是将系统时钟频率提升到32MHz,以便于提高整个系统的运算速度。它通过以下几个步骤实现:
1. 设置SYNR寄存器的值为0x03,这使得PLLCLK(锁相环路频率)等于2倍的OSCCLK(振荡器频率),并乘以SYNR加1的系数,同时考虑到REFDV(参考电压分频)设置为0x01,此时PLLCLK达到64MHz。
2. 调整FCLKDIV寄存器的值,用于对Flash时钟进行分频,确保时钟稳定。
3. 将CLKSEL设置为0x80,指示总线时钟由PLLCLK(PPLCLK)提供,进一步将PPLCLK减半,得到最终的BusClock(总线时钟)。
接下来,"initPWM()"函数专注于PWM(脉冲宽度调制)模块的初始化,这是对舵机和电机控制器的控制部分。此函数包含以下操作:
1. 首先,全局禁用PWM模块,确保在进行配置前处于关闭状态。
2. 设置PWM工作模式,选择23级联PWM控制舵机,而PWM4和PWM5用于电机控制。其他PWM通道不参与。
3. 选定PWM时钟源,如指定为ClockSA和ClockSB,并进行预分频。例如,PWMPRCLK寄存器将ClockB预分频4次,ClockA也分频4次。
4. 对于每个通道,设置预分频系数和对齐方式,例如PWMSCLA和PWMSCLB都设置为2,表示预分频4次,且所有通道左对齐。
5. 初始化PWM周期和占空比,例如PWMPER23设为40000,PWMDTY23为3000,对应PWM23的周期和占空比,以此类推,分别调整了PWM5和PWM4的参数。
6. 最后,重新启用PWM模块,使初始化设置生效。
这两个初始化函数是飞思卡尔XS128系统启动和硬件配置的基础,对于理解和使用该芯片的开发者来说,理解和掌握这些初始化过程至关重要,能够确保系统在后续运行时的稳定性和性能。在实际项目中,这些代码可能需要根据具体的应用需求进行适当的修改和优化。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2014-03-13 上传
2012-10-18 上传
2011-07-13 上传
2020-03-22 上传
2022-09-15 上传
点击了解资源详情
君子狼人
- 粉丝: 1
- 资源: 15
最新资源
- Angular程序高效加载与展示海量Excel数据技巧
- Argos客户端开发流程及Vue配置指南
- 基于源码的PHP Webshell审查工具介绍
- Mina任务部署Rpush教程与实践指南
- 密歇根大学主题新标签页壁纸与多功能扩展
- Golang编程入门:基础代码学习教程
- Aplysia吸引子分析MATLAB代码套件解读
- 程序性竞争问题解决实践指南
- lyra: Rust语言实现的特征提取POC功能
- Chrome扩展:NBA全明星新标签壁纸
- 探索通用Lisp用户空间文件系统clufs_0.7
- dheap: Haxe实现的高效D-ary堆算法
- 利用BladeRF实现简易VNA频率响应分析工具
- 深度解析Amazon SQS在C#中的应用实践
- 正义联盟计划管理系统:udemy-heroes-demo-09
- JavaScript语法jsonpointer替代实现介绍