欢迎来到天天文库
浏览记录
ID:21943763
大小:88.50 KB
页数:5页
时间:2018-10-25
《atmega48电平变化中断总结》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Atmega48电平变化中断一、寄存器说明外部电平变化中断通过引脚PCINT23..0触发。只耍使能了中断,即使引脚PCINT23..0配置为输出,只要电T发生了合适的变化,屮断也会触发。这个特点可以川來产生软件屮断。只要使能,PCINT23..16引脚上的电平变化将触发外部中断PCI2(中断服务程序中,中断向量名用PCINT2),PCINT14..8引脚上的电平变化将触发外部中断PCI1(中断服务程序中,中断向量名用PCINT1),PCINT7..0将触发外部巾断PCIO(中断服务程序中,中断向M名用PC1NT0)。PCMSK2、PCMSK1与PCM
2、SKO寄存器则用来检测是哪个引脚上的电平发生了变化。1、Atmega48引脚电平变化屮断控制寄存器——PCICR,例程屮PCICR
3、=2,即PCIE1=1,段使能:PCIE1=1,使能PCINT8-PCTNT16外部电甲变化屮断。B7B6B5B4B3B2B1B0—————PCIE2PC1E1PC1E0位PCHE2、PCIE1和FCIEO分别为引脚电平变化屮断使能2、引脚电平变化屮断使能1和引脚电平变化中断使能0。当SREG的位I置1,且PCIE2、PCIE1、PCIE0置1,使能的PCINT23〜PCINT16、PCINT14〜PCINT8、PCINT
4、7〜0引脚上的任付电平变化都会引起中断。相应的引脚电平变化屮断请求分别由PCI2、PCI1、PCI0屮断叫量执行(屮断服务程序屮,屮断h'dfi名用PC1NT2、PCINT1、PClNT0)oPCINT23〜PC1NT16、PCINT14〜PC1NT8、PC1NT7〜0引脚可以通过PCMSK2、PCMSK1、PCMSKO寄存器单独使能。2、Atmega48引脚电T•变化屮断标志寄存器——PC1FRB7B6B5B4B3B2B1B0—————PCIF2PCIF1PCIFO位PCIF2、PC1F1和PC1F0分别为引脚电T•变化中断标志2、标志1和标志0。当
5、引脚PCINT23〜PCINT16、PCINT14〜PCINT8、PCINT7〜0上屯平变化触发中断谘求吋,PCIF2、PCIF1、PCIFO置1。如果SREG寄存器中的I位与PCICR寄存器中的位PCIE2、PCIE1、PCIEO置1,MCU将会跳转到相应的中断句量。当中断程序执行时,该标志被清除。该位也讨通过写逻辑1來淸除。3、Atmega48引脚电T变化屏蔽寄存器——PCMSK2、PCMSKI、PCMSKO,例程中PCMSK1
6、=1,位使能:PCMSK1
7、=1,使能PCINT8,或写为PCMSK1=(1«PCINT8);位B7B6B5B4B3B2
8、B1B0PCMSK2PCINT23PCINT22PCINT21PCINT20PCINT19PCINT18PCINT17PCINT16PCMSK1—PCINT14PC1NT13PCINT12PCINT11PCINT10PC1NT9PCINT8PCMSK0PCINT7FCINT6PCINT5PCINT4PCINT3PCINT2PCINT1PCINT0PCMSK2中的每一位决定PCINT23〜16中相应的I/O引脚电平变化屮断是否使能,如果PCINT23〜16与PCICR上的PCIE2位置位,则相应的引脚电平变化十断使能;如果PCINT23-16淸0,则相应
9、的引脚电平变化中断禁用。同理PCMSK1中的每一位决走PCINT14〜8中相应的I/O引脚电平变化中断是否使能,PCMSK0中的每一位决定PCINT7〜0中相应的I/O引脚电平变化中断是否使能。二、实现功能说明实现电T变化屮断,需以卜*儿个环节(以PC0/PCINT8引脚为例):1、开相应中断•先使能相应段:PCICR的第1位,即PCIE1置1,使能PCINT14〜PCINT8•再使能相应位:PCMSK1的第1位,即PCINT8置1,使能PCINT8•再开全局中断:SREG的第I位置1,使能全局中断2、设H相应引脚为输入,上拉电阻有效在主程序中进行如下
10、设置:•DDRC=0xfc;//PC0设置为输入•PORTC=0x03;PC0内部上拉冇效3、编写中断服务程序屮断不足C语言的一•部分,中断的实现足由编译器实现的。所以,不同版本的编译器的屮断的写法有很大的不同;即便同样是WinAVR,不同版本中的巾断向M也都足略有区别的!•如果使用GCC-AVR的中断操作,必须包括久•文件interrupt.h,即:include11、err叩t.h。•屮断函数格式现在官方推荐的巾断书写格式就有一种:ISR(INTERRUPT_
11、err叩t.h。•屮断函数格式现在官方推荐的巾断书写格式就有一种:ISR(INTERRUPT_
此文档下载收益归作者所有