完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
相关寄存器:SREG:状态寄存器,这里只用到第七位(全局中断使能位,相当于51的EA) MCUCR:MCU控制寄存器,这里只用到低四位。1,0,位是用来设置外部中断0的触发边沿。00(第一,第零)。低电平触发。01任意电平触发。10下降沿触发。11上升沿触发。外部中断1用到第3,2,位。触发顺序同外部中断0. GICR:外部中断控制寄存器。位7外部中断1使能位。位6外部中断0使能位。位5外部中断2使能位.。 GIFR:中断标志寄存器。位7外部中断1标志位。位6外部中断0中断标志位。位5外部中断2标志位。 说明:通过外部边沿触发,来触发外部中断。同51类似。IT0外部中断0的边沿触发方式选择。EX0,外部中断0使能。EA全局中断使能。 这里以下降沿触发外部中断1. 按下开关暗,弹起,在按下亮,弹起,,在按下暗,。。。。。。
#include #include typedef unsigned int uint; void gpio_init(void) { DDRB=0xff;//设置B端口为输出 DDRD=0xfb;//设置外部中断1脚为输入 PORTB=0xff;//初始化B端口 PORTD=0xff;//使能输入上拉 } void INT_init(void) { MCUCR=0x08;//中断1触发方式低,2,3位11.下降沿触发方式。 GICR|=BIT(7);//置位7使能外部中断1 SREG|=BIT(7);//打开全局中断 } void main(void) { gpio_init(); INT_init();//中断初始化 while(1); } #pragma interrupt_handler int0_isr:3 //中断函数int0_isr为中断函数名 void int0_isr(void) { PORTB=~PORTB;//取反 } |
|
相关推荐
4 个讨论
|
|
顶起来
|
|
|
|
|
|
好好好值得下载。。。
|
|
|
|
|
|
习了学习了习了学习了
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
AVR Atmega16 Bootloader程序与上位机LabView程序
5196 浏览 6 评论
#include <ioavr.h>这个头文件我应该下什么编译器
7798 浏览 0 评论
3080 浏览 2 评论
3128 浏览 1 评论
10114 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 00:58 , Processed in 0.655305 second(s), Total 76, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号