仿真的时候开始就直接进入中断程序中,这是怎么回事啊???怎么改正啊。一次中断程序后也能再次进行中断触发的操作。
#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 编辑 ]
此帖出自
小平头技术问答
另外中断程序一般是要尽量短,延时最好不要放在中断里
一周热门 更多>