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_ */

使用

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木龠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值