这也是一个很简单的程序,主要是应用ARM实现定时1秒中断的小程序,主要说明ARM7中中断的用法。
程序如下:
#include
#define L5_Communicatin_Flag (1<<28) //定义P0.28脚
/****************************************************************************
* 名称:IRQ_Time0()
* 功能:定时器0中断服务程序,取反BEEPCON控制口。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void __irq IRQ_Time0(void)
{
if( (IO0SET&L5_Communicatin_Flag) == 0 ) //使I/O口P1.17,p0.28每隔1秒翻转一次
{
IO0SET |= L5_Communicatin_Flag;
}
else
{
IO0CLR |= L5_Communicatin_Flag;
}
T0IR = 0x01; // 清除中断标志
VICVectAddr = 0x00; // 通知VIC中断处理结束
}
/****************************************************************************
* 名称:Time0_Init()
* 功能:定时器0初始化函数。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void Time0_Init(void)
{
/* Fcclk = Fosc*4 = 11.0592MHz*4 = 44.2368MHz
Fpclk = Fcclk/4 = 44.2368MHz/4 = 11.0592MHz
*/
T0PR = 99; // 设置定时器0分频为100分频,得110592Hz
T0MCR = 0x03; // 匹配通道0匹配中断并复位T0TC
T0MR0 = 110592; // 比较值(1S定时值)
T0TCR = 0x03; // 启动并复位T0TC
T0TCR = 0x01;
/* 设置定时器0中断IRQ */
VICIntSelect = 0x00; // 所有中断通道设置为IRQ中断
VICVectCntl2 = 0x24; // 定时器0中断通道分配最高优先级(向量控制器0)
VICVectAddr2 = (uint32)IRQ_Time0; // 设置中断服务程序地址向量
VICIntEnable = (1<<4); // 使能定时器0中断
}
/****************************************************************************
* 名称:Sys_Init()
* 功能:系统初始化函数。
* 入口参数:无
* 出口参数:无
****************************************************************************/
Sys_Init()
{
PINSEL0 = 0x00000000; // 设置管脚连接GPIO
//LED L5 GPIO Init
IO0DIR |= L5_Communicatin_Flag; // 设置I/O为输出
Time_Init();
}
main()
{
Sys_Init();
while(1);
}
关键字:ARM 定时器0 中断
引用地址:
ARM之定时器0(中断)
推荐阅读最新更新时间:2024-03-16 15:04
面对不思进取的Intel,ARM阵营准备进攻桌面市场?
在移动和嵌入式市场已经取得决定性成功的ARM,显然已经把眼光放在了更广阔的市场上,毕竟不扩展市场领域,如何才能对得起孙正义460亿美元的巨额投资呢? 现在仍旧由X86处理器把持的市场也就剩下服务器和桌面市场两大块。服务器市场攻坚已经多年,但仍旧毫无成效,具体可以看商业技术评论此前的文章《ARM服务器军团全军覆没,还有人能搅动这潭水吗》。 桌面市场由于这几年面临饱和,原来并不在ARM的计划之内,但随着AMD这几年的沉沦,Intel在缺乏竞争的情况下,产品升级毫无亮点,ARM似乎看到了逆袭的机会。 英特尔近年被广大网友戏称为牙膏厂,指其更新和挤牙膏一样慢。 之所以这样,一方面的确是缺乏竞争刺激,另一方面是技术遇到瓶颈,
[半导体设计/制造]
ARM---解决ads工程转到MDK(keil)可能出现的error
最近把ADS1.2工程转到MDK4.03出现一些error,罗列了可能出现的error,并给予相关的办法,让大家在以后的转换中尽快搞定 1:error : No section matches selector –no section to be FIRST/LAST. 把原来的Init 代码段名修改成RESET: ; AREA Init,CODE,READONLY AREA RESET,CODE,READONLY 2:error Undefined symbol Main (referred from 2440init.o). error: scatter-load file declares no hea
[单片机]
Arm全新汽车图像信号处理器 加速驾驶辅助与自动化技术的导入
Arm宣布推出Arm® Mali™-C78AE ISP,为其专为汽车应用的性能和安全而设计的IP产品组合再添新成员。搭配Cortex®-A78AE与Mali-G78AE的Mali-C78AE,可提供完整的ADAS图像数据处理流水线,能够优化性能、最大限度地降低功耗,并提供一致的方法来实现功能安全,从而驱动ADAS在下一阶段的量产导入。 根据调研机构Strategy Analytics近期的一份报告显示,从2020年到2025年,汽车摄像头市场总值的增长预计将达19%以上,使其成为可为车辆提供对周围环境做出决策所需的数据的最重要传感器类型。 Arm汽车和物联网事业部副总裁Chet Babla表示:“随着车载摄像头数量和精密程
[汽车电子]
快速学Arm(9)--处理器的状态,模式以及概括了解内部寄存器
快速学习总是要颠三倒四的来学习内容.最终将所知道的东西联系起来就形成了一种能力. 我了先了解一下处理器状态,模式以及一些芯片内部的寄存器. 芯片内部的寄存器一般要使用汇编语言进行控制,写C语言的程序时,大部分情况下不用去关心这些寄存器是如何工作的,除非你要进行底层的程序设计,这些内容可以在以后随着Arm学习的深而入进行再看也不迟,目前大概的扫几眼也就可以了. Arm2400一般有两种两种指令形式,即ARM指令和Thumb指令两种状态条.ARM是32位的指令而Thumb形式则是16位指令模式.如果大家学过8068汇编和80386汇编,大家是看成PC上的8086和和80386自己的指令关心. Arm处理器除了有两种状态
[单片机]
如何选择ARM CPU的操作系统
从8位/16位单片机发展到以ARM CPU核为代表的32位嵌入式处理器,嵌入式操作系统将替代传统的由手工编制的监控程序或调度程序,成为重要的基础组件。更重要的是嵌入式操作系统对应用程序可以起到屏蔽的作用,使应用程序员面向操作系统级开发应用软件,并易于在不同的ARM核的嵌入式处理器上移植。 嵌入式操作系统都具有一定的实时性,易于裁剪和伸缩,可以适合于从ARM7到Xscale各种ARM CPU和各种档次的应用,嵌入式操作系统可以使用广泛流行的ARM开发工具,如ARM公司的SDT/ADS和RealView等,也可以使用开发软件,如GCC/GDB、KDE或Eclipe开发环境,市场上还有专用的开发工具,如Tornado、mC/Vie
[单片机]
基于ARMLinux的无线音视频对讲系统设计
随着数字化和网络化时代的到来,尤其是宽带无线网络的发展,为音视频这样大数据量传输业务在无线网络上的应用提供了契机。同时由于音视频独特的感官特性,使其相关的应用需求也变得越来越迫切。无线多媒体是多媒体和移动通信这两个领域的技术相互融合的产物,成为当今通信领域的一个热点。鉴于Linux内核的开源性,采用其作为操作系统,从而使整个系统具有更好的实时性和稳定性。整个系统以ARM11为核心处理器、采用新一代视频编解码标准H.264进行编译码,并通过无线网络传输音视频。它充分利用S3C6410微处理器内部集成的多媒体编解码器(Multi-FormatvideoCodec,MFC),有效提高了系统的性价比。整个系统为无线多媒体音视频的传输提供了
[单片机]
MCS—51单片机中断系统
图1 中断系统结构 由图1结构可知,51单片机有五个中断请求源,四个用于中断控制的寄存器IE、IP、TCON(用6位)和SCON(用2位) 用于控制中断的类型、中断的开/关和各种中断源的优先级别。五个中断源有二个中断优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序的嵌套。 1、MCS-51中断源 1.定时器/计数器控制寄存器TCON(88H) TCON为定时器/计数器T0、T1的控制器,同时也锁存了T0、T1的溢出中断源和外部中断请求源,与中断有关的位如下: IE1:外部中断 (P3.3)请求标志位。 IT1:外部中断 请求类型(触发方式)控制位。 IT1=0:外部中断1程控
[单片机]
arm表示人工智能在推动汽车技术进步方面起到至关重要的作用
随着arm准备更新其汽车产品,EENews与arm负责汽车市场推广的副总裁Dennis Laudick进行了一次访谈。在访谈中,Laudick深入探讨了arm在汽车领域的战略重点,以及人工智能在推动汽车技术进步方面的重要作用。 Laudick首先指出,arm在汽车领域的最大推动力是围绕自动驾驶和ADAS(高级驾驶辅助系统)展开的,而人工智能是其中的关键部分。他强调,人工智能不仅令人兴奋,还有巨大的潜力拯救生命。他认为,汽车行业已经到了必须强制使用人工智能的阶段,因为它是由安全驱动的。借助人工智能,汽车行业可以将零死亡作为一个现实的目标,并且所需的计算量也是低功耗的。 Laudick还谈到了汽车技术的演变过程,从机械汽车到电
[汽车电子]