MEGA8的INT1中断程序除了问题,帮助看看[已解决]

2019-03-24 20:53发布

仿真的时候开始就直接进入中断程序中,这是怎么回事啊???怎么改正啊。一次中断程序后也能再次进行中断触发的操作。
#include<iom8v.h>#define uchar unsigned char#define uint unsigned int//============延时=================void delay_ms(uint k) {   uint i,j;   for(i=0;i<k;i++)   {      for(j=0;j<570;j++)  ;    } }    uint m;   uchar Distab[]=   {0x03,0x06,0x0C,0x09   };  void main(void) {    DDRC=0xff;         //PC作为输出端口   DDRD=0xdf;         //PD3作为输入   PORTD=0xff;        //PD初始化输出11111111   MCUCR=0x08;        //INT1下降沿触发   GICR=0x80;         //使能INT1中断   SREG=0x80;         //使能总中断   while(1)           //无线循环{PORTC=0xff;} }#pragma interrupt_handler int1_isr:3   //INT1中断子函数void int1_isr(void)  {     for(m=0;m<=3;m++)                { PORTC=Distab[m];  delay_ms(500);    }}
[ 本帖最后由 wawling 于 2012-5-22 18:58 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
xiaojiong886
1楼-- · 2019-03-25 03:23
直接中断说明有下降沿触发啊,而且你进中断之后不把中断关了,延时500ms那么长时间,下个中断来了怎么办。。。。
wawling
2楼-- · 2019-03-25 07:20
因为是手动给触发中断,所以下个中断来了中断会运行完的,我现在最主要的疑问是程序开始运行还没给中断触发就进入中断去了,这是我想解决的
鑫海宝贝
3楼-- · 2019-03-25 10:52
去掉延时
wawling
4楼-- · 2019-03-25 14:55
 精彩回答 2  元偷偷看……
鑫海宝贝
5楼-- · 2019-03-25 16:45
你的数组做什么用的
wawling
6楼-- · 2019-03-25 19:16
控制4个led灯明暗变化

一周热门 更多>