atmega128 인터럽트
말근
atmega128 로 LED 구현을 하려고하는데 인터럽트가 작동이 안되네요 ㅠㅠ#include mega128.h
#include delay.h
// delay_ms(), delay_us() 사용설정
int i=0; //인터럽트를 위한 전역변수 i지정
// A포트 8자리 1옥타브(도~솔)
#define do 0x7f
#define doh 0xbf
#define re 0xdf
#define reh 0xef
#define me 0xf7
#define fa 0xfb
#define fah 0xfd
#define so 0xfe
// C포트 4자리 1옥타브(솔#~시#)
#define soh 0x7f
#define ra 0xbf
#define si 0xdf
#define sih 0xef
// B포트 8자리 2옥타브(도~솔)
#define do2 0x7f
#define doh2 0xbf
#define re2 0xdf
#define reh2 0xef
#define me2 0xf7
#define fa2 0xfb
#define fah2 0xfd
#define so2 0xfe
// C포트 4자리 2옥타브(솔#~시#)
#define soh2 0xf7
#define ra2 0xfb
#define si2 0xfd
#define sih2 0xfe
//피아노 코드
//C
#define C 0x76
//Cm
#define Cm 0x67
//Csus4
#define Cs 0x7a
//D
#define D 0xdd
#define D1 0xbf
//Dm
#define Dm 0xdc
#define Dm1 0xbf
//Dsus4
#define Ds 0xde
#define Ds1 0xbf
//E
#define E 0xf7
#define E1 0x5f
//Em
#define Em 0xf6
#define Em1 0xef
//Esus4
#define Es 0xf7
#define Es1 0xaf
//F
#define F 0x7b
#define F1 0xbf
//Fm
#define Fm 0x7b
#define Fm1 0x7f
//Fsus4
#define Fs 0x7b
#define Fs1 0xdf
//G
#define G 0xde
#define G1 0xef
//Gm
#define Gm 0xde
#define Gm1 0xcf
//Gsus4
#define Gs 0x5e
//A
#define A 0xed
#define A1 0xbf
//Am
#define Am 0xec
#define Am1 0xbf
//Asus4
#define As 0xee
#define As1 0xbf
//B
#define B 0xed
#define B1 0xef
//Bm
#define Bm 0xdd
#define Bm1 0xef
//Bsus4
#define Bs 0xf5
#define Bs1 0xef
// 빈자리
#define no 0xff // A포트 flash unsigned char arr[] = {no,no,do,do,no,do,no,no,do,fa,
fa,no,fa,no,no,no,fa,do,do,no,
do,no,no,no,do,so,so,no,so,no,
no,no,so,do,do,no,do,no,no,no,
do,fa,fa,no,fa,no,no,no,fa,do,
do,no,do,so,so,no,so,do,do,no,
do,no,no,no,do,do,do,no,do,no,
no,no,do,fa,fa,no,fa,no,no,no,
fa,do,do,no,do,no,no,no,do,so,
so,no,so,no,no,no,so,do,do,no,
 sp; do,no,no,no,do,fa,fa,no,fa,no,
no,no,fa,do,do,no,do,so,so,no,
so,do,do,no,do,no,no,no,do,fa,
fa,no,fa,no,no,no,fa,do,do,no,
do,no,no,no,do,fa,fa,no,fa,re,
re,no,re,so,so,no,so,no,no,no,
so};
// A포트
flash unsigned char arr1[] = {no,no,C,C,C,no,C,C,C,no,F,F,F,
no,F,F,F,no,C,C,C,no,C,C,C,no,
G,G,G,no,G,G,G,no,C,C,C,no,C,C,
C,no,F,F,F,no,F,F,F,no,C,C,C,no,
G,G,G,no,C,C,C,no,C,C,C,no,C,C,C,
no,C,C,C,no,F,F,F,no,F,F,F,no,C,
C,C,no,C,C,C,no,G,G,G,no,G,G,G,
no,C,C,C,no,C,C,C,no,F,F,F,no,F,
F,F,no,C,C,C,no,G,G,G,no,C,C,C,no,
C,C,C,no,G,G,G,no,G,G,G,no,C,C,C,
no,C,C,C,no,F,F,F,no,D,D,D,no,G,G,
G,no,G,G,G,no};
// B포트
flash unsigned char arr2[] = {no,no,no,no,no,no,no,no,no,no,
no,no,no,no,no,no,no,no,no,no,
no,no,no,no,no,no,no,no,no,no,
no,no,no,no,no,no,no,no,no,no,
no,no,no,no,no,no,no,no,no,no,
no,no,no,no,no,no,no,no,no,no,
no,no,no,no,no,no,no,no,no,no,
no,no,no,no,no,no,no,no,no,no,
no,no,no,no,no,no,no,no,no,no,
no,no,no,no,no,no,no,no,no,no,
no,no,no,no,no,no,no,no,no,no,
no,no,no,no,no,no,no,no,no,no,
no,no,no,no,no,no,no,no,no,no,
no,no,no,no,no,no,no,no,no,no,
no,no,no,no,no,no,no,no,no,no,
no,no,no,no,no,no,no,no,no,no,
no};
void main(void)
{ DDRA = 0xff;
DDRC = 0xff;
DDRB = 0xff;
DDRE = 0xff;
DDRD = 0x00;
EIMSK = 0b00001111;
EICRA = 0b11111111;
PORTA = 0xff;
PORTC = 0xff;
PORTB = 0xff;
PORTE = 0x0f;
PORTD = 0x0f;
SREG.7 = 1;
while(1);
}
interrupt [2] void exint0(void){
for(i=0; isizeof(arr); i++)
{
PORTA = arr[i];
PORTB = arr1[i];
PORTC = arr2[i];
delay_ms(1000);
PORbsp; PORTA = 0xff;
PORTB = 0xff;
PORTC = 0xff;
delay_ms(100);
}
}에러는 안뜨고요 스위치 구현을 했는데도 불구하고 작동이 안되네요 ㅠㅠ
-
세라
개발 환경은 코드비전입니다