ATmega48 中断向量

发布者:荣耀使者最新更新时间:2021-10-21 来源: eefocus关键字:ATmega48  中断向量  中断处理 手机看文章 扫描二维码
随时随地手机看文章

本节描述 ATmega48/88/168 的中断处理。更一般的 AVR 中断处理请参见 P11” 复位与中断处理 ” 。


(点击图片放大)

ATmega48 典型的复位和中断设置如下:
地址···代码 ···代码说明
0x000 rjmp RESET ; 复位处理
0x001 rjmp EXT_INT0 ; IRQ0处理
0x002 rjmp EXT_INT1 ; IRQ1处理
0x003 rjmp PCINT0 ; PCINT0处理
0x004 rjmp PCINT1 ; PCINT1处理
0x005 rjmp PCINT2 ; PCINT2处理
0x006 rjmp WDT ;看门狗定时器处理
0x007 rjmp TIM2_COMPA ; 定时器 2 比较 A处理
0x008 rjmp TIM2_COMPB ; 定时器 2比较 B处理
0x009 rjmp TIM2_OVF ; 定时器 2溢出处理
0x00A rjmp TIM1_CAPT ; 定时器 1捕获处理
0x00B rjmp rjmp TIM1_COMPA ; 定时器 1比较 A处理
0x00C rjmp TIM1_COMPB ; 定时器 1比较 B处理
0x00D rjmp TIM1_OVF ; 定时器 1溢出处理
0x00E rjmp TIM0_COMPA ; 定时器 0比较 A处理
0x00F rjmp TIM0_COMPB ; 定时器 0比较 B处理
0x010 rjmp TIM0_OVF ; 定时器 0溢出处理
0x011 rjmp SPI_STC ; SPI 传输结束处理
0x012 rjmp rjmp USART_RXC ; USART, RX结束处理
0x013 rjmp USART_UDRE ; USART, UDR空处理
0x014 rjmp USART_TXC ; USART, TX Complete 处理
0x015 rjmp ADC ; ADC转换结束处理
0x016 rjmp EE_RDY ; EEPROM就绪处理
0x017 rjmp ANA_COMP ; 模拟比较器处理
0x018 rjmp TWI ; 两线串行接口处理
0x019 rjmp SPM_RDY ; SPM 就绪处理
; 0x01A RESET: ldi r16, high(RAMEND); 主程序
0x01B out SPH,r16 ; 设置堆栈指针为 RAM的顶部
0x01C ldi r16, low(RAMEND)
0x01D out SPL,r16
0x01E sei ; 使能中断
0x01F xxx


关键字:ATmega48  中断向量  中断处理 引用地址:ATmega48 中断向量

上一篇:ATmega48 SPI数据模式与时序
下一篇:ATmega48 看门狗定时器

推荐阅读最新更新时间:2024-11-10 12:05

msp430学习笔记之中断处理函数
//本平台 msp430f149 #include msp430.h void select_xt2(void){ unsigned char i; /*------选择系统主时钟为8MHz-------*/ BCSCTL1 &= ~XT2OFF; //打开XT2高频晶体振荡噿 do{ IFG1 &= ~OFIFG; //清除晶振失败标志 for (i = 0xFF; i 0; i--); //等待8MHz晶体起振 }while ((IFG1 & OFIFG)); //晶振失效标志仍然存在_ BCSCTL2 |= SELM_2
[单片机]
ARM架构异常中断处理流程
在ARM体系中通常有以下3种方式控制程序的执行流程: 在正常程序执行过程中,每执行一条ARM指令,程序计数器寄存器(PC)的值加4个字节;每执行一条Thumb指令,程序计数器寄存器(PC)的值加两个字节。整个过程是顺序执行。 通过跳转指令,程序可以跳转到特定的地址标志处执行,或者跳转到特定的子程序处执行。其中,B指令用于执行跳转操作;BL指令在执行跳转动作的同时,保存子程序的返回地址;BX指令在执行跳转操作的同时,根据目标地址的最低位可以将程序状态切换到Thumb状态;BLX指令执行3个操作:跳转到目标地址处执行,保存子程序的返回地址,根据目标地址的最低位可以将程序状态切换到Thumb状态。 当异常中断发生时,系统执行
[单片机]
ARM架构异常<font color='red'>中断处理</font>流程
Linux驱动之中断处理体系结构简析
S3C2440中的中断处理最终是通过IRQ实现的,在Linux驱动之异常处理体系结构简析已经介绍了IRQ异常的处理过程,最终分析到了一个C函数asm_do_IRQ,接下来继续分析asm_do_IRQ,目标是推导出中断的处理过程。 看到asm_do_irq函数,它位于archarmkernelIrq.c中。它先根据irq中断号从irq_desc 数组中取出这个中断对应的desc结构体,irq中断号是根据INTOFFSET寄存器的值来确定的,这个寄存器里的值根据中断的来源不同会置位相应的位,它在调用C函数asm_do_IRQ之前被存放在r0中,在C函数中即是irq。 asmlinkage void __exception as
[单片机]
ATmega48 外部时钟
ATmega48可用外部时钟源驱动,如Figure 15所示的进行连接。 此时CKSEL熔丝位必须按照Table15编程。 选择了这个振荡源之后,启动时间由熔丝位 SUT确定,如 Table16 所示。 为了保证MCU 能够稳定工作,不能突然改变外部时钟源的振荡频率。工作频率突变超过2% 将会产生异常现象。应该在MCU 保持复位状态时改变外部时钟的振荡频率。 要注意的是,系统时钟预分频可以实现在运行期间改变内部时钟频率而保持系统稳定运 行。请参见 P31”系统时钟预分频器 ”。
[单片机]
<font color='red'>ATmega48</font> 外部时钟
STM32f103 定时器配置和中断处理函数
// IAR 7.1 定时器中断时间依赖系统外部时钟 #include stm32_timer.h uint8_t tick = 0; void stm32_timer_init(void) { uint16_t PrescalerValue = 0; NVIC_InitTypeDef NVIC_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; /* Compute the prescaler value */ PrescalerValue = (uint16_t) (SystemCoreClock / COUNT_CLK) - 1;
[单片机]
51内核的中断及中断向量
51内核的最基础的中断源请求有外部中断、定时器中断和串口中断,这也是学习和开发者最长用的。当然还有其他的中断源,比如ADC、SPI、PWM等。以外部中断0为例,在编程中常使用的方式为: void INT0()interrupt 0 using 1 { …… } 在这里特别做上笔记:其中前面的void INT0() 只是代表一个普通没有形参的函数而已,函数名写成什么都是可以的,这个到不重要。那么后面的就一个一个词的扣把: 其中 interrupt n 组成一组,n用来指明中断号,在函数后使用了interrupt关键字后,就会自动的生成中断向量,51内核中断号如下图,这是我今天查的正在使用的MCU: 例如:12 interrupt
[单片机]
基于ARM中的IRQ的中断处理
Startup中断向量表 ;******************************************************************************* ; ExcepTIon vectors ;******************************************************************************* LDR PC, Reset_Addr ; 地址为0x8000 0000 LDR PC, Undefined_Addr LDR PC, SWI_Addr LDR PC, Prefetch_Addr LDR PC, Abort_Addr NOP ; R
[单片机]
快速学ARM--中断向量控制器VIC
技术生涯,半生荣辱,每天都是生活在痛并快乐中,我讨厌的东西总是不得不天天面对,麻木和无所谓也就是这样产生的.但对于技术的好奇和追求是我下半生依然不会停止的事情,虽然驽钝,只要每日有所得,也有所追求足以. 这两天在忙于另外一个程序,由于上家的延误,使我又有了点空闲,继续来学习已经不是新事物的新事物.:-) 前几天决定了从简单的单任务Arm程序学起,放下手中的uC/OS-II书籍,发现手中又少了可以阅读的东西.好在网上有很多可以参考的资料,只是这些资料不是专为LPC2400写的.不过没关系,手里还有LPC2400的datasheet,对照的看就可以了.Arm的原理大同小异,只是型号之间有所区别罢了. 下面的这本书对初学者很
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved