KL25定时器实验
更新时间:2024-05-12 05:24:01 阅读量: 综合文库 文档下载
嵌入式系统原理与应用实验报告
专业班级:物联1301 姓名:齐亨 学号:13516110 组员:齐亨 实验日期:2016年5月13日
实验名称:定时器实验( Systick 和 TPM)
一、实验目的
1、掌握 M0+内核时钟和 KL25 TPM 定时器计数功能的原理和使用方法。 2、掌握 KL25 PWM 功能的使用。 二、实验内容
1、导入工程,运行程序,观察实验现象;
2、 对照课本和工程,理解 Systick 和 TPM 计数功能以及 PWM 功能的编程步骤;
3、 修改 Systick 或 TPM,使时间显示格式为 xx:xx:xx (如 19:01:00); 4、 修改 PWM 工程,使蓝灯的亮度可以随时间慢慢变暗或变亮。 三、实验过程 1、原理图
2、基本原理
计数器输入的计数脉冲源
系统的时钟振荡器输出脉冲经12分频后产生; T0或T1引脚输入的外部脉冲源。 四、编程
1.程序流程图
所用寄存器名称及其各个位
1、SysTick定时器模块的寄存器地址
2、控制及状态寄存器SYST_CSR
3、Sys Tick优先级寄存器
主要程序代码
#include \包含总头文件 void Hex_to_ASCII(uint_8 *temp); int main(void) {
//1. 声明主函数使用的变量 uint_32 remember; //2. 关总中断
DISABLE_INTERRUPTS; //3. 初始化外设模块
light_init(RUN_LIGHT_BLUE,LIGHT_OFF); //初始化蓝色RUN灯 uart_init (UART_0,MCGPLL, 9600); //串口0初始化, 总线时钟24000Khz,波特率9600
uart_send_string(UART_0, \发送开始信息
systick_init(CORE_CLOCK_DIV_16, 10); // 初始化SysTick周期为10ms,时钟源为外部时钟 //4. 给有关变量赋初值
g_time[0] = 0; //\时分秒\缓存初始化(00:00:00) g_time[1] = 0; g_time[2] = 0;
remember = g_time[2]; //临时变量remember初始化 //5. 使能模块中断
uart_enable_re_int(UART_0); //启动串口1接收中断 //6. 开总中断
ENABLE_INTERRUPTS; //进入主循环 //主循环开始==================================================================
for(;;) {
if (g_time[2] != remember) //判断秒钟是否发生变化 {
light_change(RUN_LIGHT_BLUE); //蓝色运行指示灯(RUN_LIGHT_BLUE)状态变化
// uart_sendN(UART_0,3,g_time); remember=g_time[2]; Hex_to_ASCII(g_time); } //以下加入用户程序-------------------------------------------------------- }//主循环end_for //主循环结束
============================================================== return 0; }
void Hex_to_ASCII(uint_8 *temp) {
uint_8 a_time[10];
a_time[0] = *temp/10+48; a_time[1] = *temp+48; a_time[2] = ':';
a_time[3] = *(temp+1)/10+48; a_time[4] = *(temp+1)+48; a_time[5] = ':';
a_time[6] = *(temp+2)/10+48; a_time[7] = *(temp+2)+48; a_time[8] = '\\r'; a_time[9] = '\\n';
uart_sendN(UART_0,10,a_time); }
五.实验问答
当利用SysTick定时器设计的电子时钟,出现走快了或走慢了时,如何调整?
答:初始化相关模块: SysTick_CounterCmd(SysTick_Counter_Disable);
SysTick_ITConfig(DISABLE); SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
SysTick_SetReload(9000); // 设定SysTick达到1ms计数结束
SysTick_ITConfig(ENABLE); // 使能SysTick中断 中断处理:
void SysTickHandler (void)
{ if (TimingDelay != 0x00) TimingDelay--; }
延时代码:
void Delay(u32 nTime)
{ SysTick_CounterCmd(SysTick_Counter_Enable); // 使能SysTick计数器
TimingDelay = nTime; // 读取延时时间
while(TimingDelay != 0); // 判断延时是否结束
SysTick_CounterCmd(SysTick_Counter_Disable); // 关闭SysTick计数器
SysTick_CounterCmd(SysTick_Counter_Clear); // 清除SysTick计数器 }
应用代码: Delay(300); // 延时 300ms
六.实验小结
通过该实验的学习,熟悉了M0+内核时钟和 KL25 TPM 定时器计数功能的原理和使用方法;大概的掌握 KL25 PWM 功能的使用;进一步的熟悉了汇编程序C语言编程。
正在阅读:
KL25定时器实验05-12
总监理工程师考核办法200804-22
初中九年级数学中考专题复习模拟检测试卷WORD(含答案) (46)03-08
师德考核自评个人工作总结最新5篇08-22
小学二年级数学说课稿5篇04-02
云南省鼓励专业技术人员到基层服务暂行办法07-24
施工作业05-12
喷漆房 - 图文06-02
(3) Stress at a Point and Stress Field06-03
会议服务标准 - 图文03-30
- Win7 安装MySql图示
- 计算器课程设计报告
- 部编版八年下语文第三单元第六单元古诗文理解默写练习及答案
- 13质量通病防治方案和施工措施
- 土力学试题~~~~
- 公务员打印资料
- 传热膜系数测定实验报告 - 图文
- 新时期煤矿协管安全工作的创新与实践
- 第五章 习题及参考答案
- 220kV架空线路强条执行记录表
- 音乐欣赏读后感
- 高炉
- 劳动教育需要新的时代内涵
- 10建筑地面工程施工质量验收规范GB50209-20021
- 银行会计练习题2答案
- 2013年七年级地理上册知识点复习提纲湘教版
- 人教版三年级语文上册第四单元测试题(A卷)(有答案)
- 营养师第九章练习题
- 湖北省武汉市2018届高三毕业生二月调研 理综化学
- 行业分析2018-2023年中国男性护肤品行业市场发展分析及投资前景
- 定时器
- 实验
- KL25
- 第36讲 建筑工程施工现场管理及建筑工程的竣工验收(2011年新年
- 传统文化的宗教信仰与儒道佛
- 全国家庭教育指导大纲
- 2011届高三化学考前训练
- 四升五数学培训教材 - 图文
- 饮食英语词汇大全
- 4.材料结构分析方法7-8
- 《金粉世家》中金燕西的形象分析
- ANSYS fluent菜单中英文对照
- 2005--2015年山西省中考物理试卷 - 图文
- 成都市长诚热喷涂技术有限责任公司调查报告(2018版) - 图文
- 小学数学教师个人教学工作总结(三篇) - 图文
- 论教师良好的外表形象在师生关系建立中的作用
- 教育科学研究方法复习题
- 网络对联优秀出对180幅作品赏析
- 小学三年级奥数教材
- 全国农村环境污染防治规划纲要2007-2020年
- 汽车修理企业维修服务管理上墙制度汇编
- 感冒了吃什么好的快 预防感冒的食疗良方
- 2外研版(三起)五年级英语上册第二模块测试题及答案