当前位置: 首页 > news >正文

C2000 F280049 Timer模块开发

F280049 Timer概述

结构图如下,具体情况请参考F280049指导手册。跟F2803x、F2806的定时器差不多的。
在这里插入图片描述
#源码讲解

  • 关于F280049网上的代码多数都是sysconfig生成的,使用寄存器版的少。我个人更喜欢寄存器版的,这样能对代码的整体更有掌控力。
/** ds_timer.c**  Created on: 2023年9月19日*      Author: chends*/#include "ds_timer.h"/*
*psc-预分频值
*prd-周期值
*/
void cpu_timer0_init(Uint16 psc,Uint32 prd)
{EALLOW;PieVectTable.TIMER0_INT= &dasen_TIM0IRQn;CpuSysRegs.PCLKCR0.bit.CPUTIMER0=1;//使能CPUtimer0时钟EDIS;CpuTimer0Regs.TIM.all=0;//定时器计数器寄存器,计数递减为0时重装载PRD周期值CpuTimer0Regs.TCR.bit.TIF=1;//写1清除CPU-timer溢出标志位CpuTimer0Regs.TCR.bit.TIE=1;//使能CPU-timer中断CpuTimer0Regs.TCR.bit.FREE=1;//断点调试相关。如果 FREE 位设置为 1,则软件断点后,定时器继续运行。如果 FREE 位为 0,则 SOFT 位控制仿真行为。CpuTimer0Regs.TCR.bit.SOFT=0;//0h= TIMH:TIM 下一次递减后停止(硬停止)。 1h= TIMH:TIM 递减到 0 后停止(软停止)。 仅当 FREE=0 时,如果 FREE=1,则该位无关紧要CpuTimer0Regs.TCR.bit.TSS=0;//CPU-timer停止状态位。读取为1时表示CPU-timer已停止。要停止CPU-timer,请将TSS设置为1。psc = psc>0 ? psc-1 : 0;CpuTimer0Regs.TPRH.bit.TDDRH=psc>>8;CpuTimer0Regs.TPR.bit.TDDR=(psc&0xff);//预分频值,计数TDDRH:TDDR + 1次,CPU-timer递减1。CpuTimer0Regs.PRD.all=prd;//计数周期值CpuTimer0Regs.TCR.bit.TRB=1;//写0无效,写 1 时,TIMH:TIM 将加载 PRDH:PRD 中的值,预分频器计数器 (PSCH:PSC) 将加载定时器分频寄存器 (TDDRH:TDDR) 中的值。//开启中断IER |= M_INT1;PieCtrlRegs.PIEIER1.bit.INTx7=1;PieCtrlRegs.PIEACK.bit.ACK1=1;//写1去清除ACK位//使能总中断EINT;ERTM;
}interrupt void dasen_TIM0IRQn(void)
{GpioDataRegs.GPBTOGGLE.bit.GPIO32=1;//IO口电平翻转CpuTimer0Regs.TCR.bit.TIF=1;//写1清除定时器溢出标志CpuTimer0Regs.TCR.bit.TRB=1;//CPU-Timer重载PieCtrlRegs.PIEACK.bit.ACK1=1;
}
/** ds_timer.h**  Created on: 2023年9月19日*      Author: chends*/#ifndef USER_DS_TIMER_H_
#define USER_DS_TIMER_H_
#include "F28x_Project.h"interrupt void dasen_TIM0IRQn(void);
void cpu_timer0_init(Uint16 psc,Uint32 prd);#endif /* USER_DS_TIMER_H_ */

使用

使用时,调用初始化函数来初始化定时器。设置好定时时间。在中断中加入用户代码即可。


http://www.mrgr.cn/news/27356.html

相关文章:

  • Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题
  • Java 21的Enhanced Deprecation的笔记
  • nacos和eureka的区别
  • 数据集 wider person 户外密集行人检测 >> DataBall
  • node.js精品课程网站—计算机毕业设计源码27724
  • JNI编程实现原理
  • 三维点云处理(C++)学习记录——PDAL
  • 技术周总结 09.09~09.15周日(C# WinForm WPF)
  • 使用Flux以文生图
  • [产品管理-16]:NPDP新产品开发 - 14 - 产品创新流程 - 产品创新流程模型比较:门径、IPD、精益生产、敏捷、系统工程、设计思维、精益创业
  • Java 全面指南:从入门到精通
  • PMP--一模--解题--61-70
  • re题(19)BUUCTF[ACTF新生赛2020]easyre
  • 【MySQL-初级】mysql基础操作(账户、数据库、表的增删查改)
  • 【C#生态园】选择最适合你的工具:C# GUI库完整比较及指南
  • 大模型大侦探-一次丝滑的探图记录
  • MyBatis系统学习(二)——MyBatis 核心配置与对象解析
  • 知识竞赛活动舞台搭建要多少钱
  • stm32单片机个人学习笔记3(GPIO输出)
  • Visual Studio打开项目的一些小技巧