سلام من با keil یه برنامه برای استفاده از EINT0 نوشتم ، اما هرکاری می کنم جواب نمیده
#include <lpc21xx.h>
void delay(unsigned long i);
unsigned long j;
void int0_isr( void ) __irq
{
IO0SET= 0x00000001; //set led1
EXTINT=1; //Acknowledge
VICVectAddr=0; //Acknowledge
j=0;
}
int main (void)
{
IO0DIR= 0x00000003; //set PORT0.0 , PORT0.1 as output
PINSEL1=0x00000001; //set PORT0.16 to EINT0
EXTMODE=1; // EINT0 is edge sensitive
EXTPOLAR=0; //EINT0 is falling-edge sensitive
VICIntSelect= 0x00000000; //set eint0 to IRQ
VICIntEnable =0x00004000; //enable Eint0
VICVectAddr14=(unsigned long) int0_isr; //set int0_isr for interrupt service
while(1)
{
delay(200000);
IO0CLR=0x00000001;
IO0SET=0x00000002;
delay(200000);
IO0CLR=0x00000002;
}
}
void delay(unsigned long i)
{
for(j=0;j<=i;j++);
}
در ضمن من تازه ARM شروع به کار کردم
void delay(unsigned long i);
unsigned long j;
void int0_isr( void ) __irq
{
IO0SET= 0x00000001; //set led1
EXTINT=1; //Acknowledge
VICVectAddr=0; //Acknowledge
j=0;
}
int main (void)
{
IO0DIR= 0x00000003; //set PORT0.0 , PORT0.1 as output
PINSEL1=0x00000001; //set PORT0.16 to EINT0
EXTMODE=1; // EINT0 is edge sensitive
EXTPOLAR=0; //EINT0 is falling-edge sensitive
VICIntSelect= 0x00000000; //set eint0 to IRQ
VICIntEnable =0x00004000; //enable Eint0
VICVectAddr14=(unsigned long) int0_isr; //set int0_isr for interrupt service
while(1)
{
delay(200000);
IO0CLR=0x00000001;
IO0SET=0x00000002;
delay(200000);
IO0CLR=0x00000002;
}
}
void delay(unsigned long i)
{
for(j=0;j<=i;j++);
}
دیدگاه