外部中断in__.c

来自「请认真阅读您的文件包然后写出其具体请认真阅读您的文件包然后写出其具体」· C语言 代码 · 共 48 行

C
48
字号
/***************************************************
CodeWizardAVR V1.24.8d Professional
//PD2插上跳线帽/PD3插上跳线帽/PC插上跳线帽,其他的开路
//使用内部时钟
//按动SW按键就可以打开/关闭蜂鸣器
//本例子没有考虑太多的按键防抖动功能
***************************************************/

#include <mega8.h>
	#ifndef __SLEEP_DEFINED__
	#define __SLEEP_DEFINED__
	.EQU __se_bit=0x80
	.EQU __sm_mask=0x70
	.EQU __sm_powerdown=0x20
	.EQU __sm_powersave=0x30
	.EQU __sm_standby=0x60
	.EQU __sm_ext_standby=0x70
	.EQU __sm_adc_noise_red=0x10
	.SET power_ctrl_reg=mcucr
	#endif

interrupt [2] void INT0_isr(void) //INT0的中断向量是2,请参考M48数据手册的48页
{
  PORTD.3=~PORTD.3;               //电平取反
 // EIFR|=1;                        //清除INT0中断触发标记,防止按键抖动
 GIFR|=0x40;
}

void main(void)
{
  PORTD.2=1;
  DDRD.2=0;                       //设置INT0端口为输入,上拉电阻有效
  PORTD.3=0;
  DDRD.3 =1;                      //设置PD3输出低电平,准备驱动蜂鸣器

//  EIMSK|=1;                       //打开INT0中断
//  EICRA|=3;                       //INT0上升沿触发
GICR|=0x40;
MCUCR|=3;
  #asm("sei")                     //插入汇编语句,打开全局中断

  while (1)                       //循环,等待中断
        {
           #asm("nop")            //空操作的汇编代码,等待中断发生
        };
    }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?