首页 > 其他分享 >定时器Timer中断

定时器Timer中断

时间:2024-06-03 17:28:16浏览次数:29  
标签:定时器 中断 void TIMER0 Timer 寄存器 bit CPU

一、CPU定时器 Timer

二、CPU定时器寄存器 CpuTimer0Regs

1.定时器计数器 TIM

2.定时器周期寄存器 PRD

3.定时器预定标寄存器-高 TPRH

(1)预定标计数器-高 PSCH

     与PSC相同

(2)定时器分频器-高 TDDRH

     与TDDR相同

4.定时器预定标寄存器-低 TPR

(1)预定标计数器-低 PSC

(2)定时器分频器-低 TDDR

5.定时器控制寄存器 TCR

三、代码

void TIMER0_Init(float Freq, float Period)
{
    EALLOW;
    
    // 使能定时器0的时钟
    SysCtrlRegs.PCLKCR3.bit.CPUTIMER0ENCLK = 1; 

    //指定中断向量表中Timer 0的中断服务函数地址
    PieVectTable.TINT0 = &TIMER0_IRQn;

    //初始化CPU定时器
    InitCpuTimers();

    //配置CPU定时器
    ConfigCpuTimer(&CpuTimer0, Freq, Period);  
    /* 该函数有3个参数,第1个表示选择定时器0/1/2,
       第2个表示定时器频率,第3个表示定时器周期 */

    //打开定时器0
    CpuTimer0Regs.TCR.bit.TSS=0;

    //使能中断
    PieCtrlRegs.PIEIER1.bit.INTx7 = 1;
    IER |= M_INT1;
    EINT;

    ERTM;
    
    EDIS;
}

interrupt void TIMER0_IRQn(void)
{
    EALLOW;
    
    LED2_TOGGLE;
    PieCtrlRegs.PIEACK.bit.ACK1=1;
    
    EDIS;
}

标签:定时器,中断,void,TIMER0,Timer,寄存器,bit,CPU
From: https://blog.csdn.net/2301_78976182/article/details/139420092

相关文章

  • 中断卡在configASSERT( ucCurrentPriority >= ucMaxSysCallPriority );
    今天在调试以太网驱动的时候遇到一个问题,当程序执行到这个/*addthenetworkinterface(IPv4/IPv6)withRTOS*/netif_add(&gnetif,&ipaddr,&netmask,&gw,NULL,&ethernetif_init,&tcpip_input);函数里面的netif_invoke_ext_callback(netif,LWIP_NSC_NETIF_ADDED,N......
  • QNX-9—QNX官网文档翻译—中断-3—Writing an Interrupt Handler
    翻译:QNXSoftwareDevelopmentPlatform-->Programming-->Programmer'sGuidehttps://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.prog/topic/inthandler.html前言:及时处理硬件事件的关键是硬件产生中断。中断只是处理器正在执行的操作的暂停或中断......
  • 七、FreeRTOS学习笔记-中断管理
    FreeRTOS学习笔记-中断管理中断:让CPU打断正常运行的程序,转而去处理紧急的事件(程序)中断执行机制,可简单概括为三步:1、中断请求:外设产生中断请求(GPIO外部中断、定时器中断等)2、响应中断:CPU停止执行当前程序,转而去执行中断处理程序(ISR)3、退出中断:执行完毕,返回被打断的程序处,继续......
  • STM32使用定时器在普通gpio上模拟pwm-红牛开发板LED1的亮度调节
    stm32F103zet只有固定的几个针脚可以输出tim定时器信号,在不支持tim输出的口上就没法输出pwm,在红牛开发版上的表现就是控制lcd屏幕亮度的a1针脚,可以输出pwm,屏幕亮度可以无极调节,但是4个led灯就只能控制开关。使用arduino的analogWrite函数,只能调节开关。可以用定时器的中断来控制......
  • 基于标准库的STM32的外部中断EXTI
            毕设已经告一段落了,接下来准备开始整理一下毕设中用到的知识与技术细节,今天整理的是STM32从编码器获取数据的方式-----外部中断(EXTI):外部中断分为四个硬件相关外设,GPIO/AFIO/EXTI/NVIC(EXTI/NVIC不需要开启时钟)1.RCC开启时钟RCC_APB2PeriphClockCmd(RCC_APB2P......
  • C# WinForm —— 23 Timers.Timer 组件介绍与使用
    1.简介System.Timers.Timer计时器轻量每隔一段时间触发Elapsed事件,执行操作(不是由UI线程执行的),即使事件中执行了比较耗时的操作,也不会造成UI失去响应如果要获取服务器的计时功能的话,可以使用System.Timers.TimerSystem.Timers.Timer的ELapsed事件中无法修改UI控......
  • 杂项——STM32ZET6要注意的一些问题——高级定时器问题和PB3,PB4引脚问题
    ZET6可能会用到定时器,高级定时器要输出PWM要加上这样一行代码,否则无法正常输出PWM波TIM_CtrlPWMOutputs(TIM8,ENABLE); //主输出使能,当使用的是通用定时器时,这句不需要ZET6中PB3,PB4引脚默认功能是JTDO和NJTRST,如果想将其当作正常IO口使用需要加上两行代码 RCC_APB2Pe......
  • 原子上下文和中断上下文的区别
    原子上下文(AtomicContext)定义:原子本意是“不能被进一步分割的最小粒子”,而原子操作指的是“不可被中断的一个或一系列操作”。在操作系统中,原子上下文通常与原子操作相关,这些操作在执行过程中不会被其他操作或中断打断,从而保证其完整性。特点:不可分割性:原子操作在执行过程中......
  • 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注
    为什么会突然想到写这么一个大杂烩的博文呢,必须要从笔者几年前的一次面试说起当时的我年轻气盛,在简历上放了自己的博客地址,而面试官应该是翻了我的博客,好几道面试题都是围绕着我的博文来提问其中一个问题,直接使得空气静止了五分钟,然后面试官结束了这次面试,那就是:如何手写一个简......
  • 五月踩坑指南之clearInterval()定时器不起效果
    clearInterval定时器不起效果问题代码解决方案:将定时器增加到数组内,循环清除另外的方案问题代码lettimer=nulltimer=setInterval(()=>{执行的方法},1000)timer=setInterval(()=>{执行的方法},1000)if(timer){clearInterval(this.timer)timer=null;}此......