mấy anh chị cho em hỏi :
em sử dụng 2 ngắt ngoài AVR INT0 vs INT1 làm nút nhấn STart STop,nhưng sao khi em nhấn chương trình ngắt 0(start) chạy trước, rồi nhấn ngắt 1( Stop) thì ngắt 0 không bị vô hiệu hóa,và Stop cũng không được, chỉ khi đợi ngắt 0 chạy xong thì ngắt 1 mới có tác dụng.
code ngắt em như này :
interrupt [EXT_INT0] void ext_int0_isr(void)
{
// Place your code here
{
while(1)
{
for(br1=0;br1<255;br1++)
{
setPWMoutput1(br1);
setPWMoutput2(br1);
setPWMoutput3(br1);
wait();
}
for(br1=255;br1>0;br1--)
{
setPWMoutput1(br1);
setPWMoutput2(br1);
setPWMoutput3(br1);
wait();
GIFR=0x80;
}
}
}
}
// External Interrupt 1 service routine
interrupt [EXT_INT1] void ext_int1_isr(void)
{
// Place your code here;
{
setPWMoutput1(0);
setPWMoutput2(0);
setPWMoutput3(0);
wait1();
}
}
anh chị koi cần bổ sung gì thì bổ sung giúp em với.em cảm ơn nhìu.
em sử dụng 2 ngắt ngoài AVR INT0 vs INT1 làm nút nhấn STart STop,nhưng sao khi em nhấn chương trình ngắt 0(start) chạy trước, rồi nhấn ngắt 1( Stop) thì ngắt 0 không bị vô hiệu hóa,và Stop cũng không được, chỉ khi đợi ngắt 0 chạy xong thì ngắt 1 mới có tác dụng.
code ngắt em như này :
interrupt [EXT_INT0] void ext_int0_isr(void)
{
// Place your code here
{
while(1)
{
for(br1=0;br1<255;br1++)
{
setPWMoutput1(br1);
setPWMoutput2(br1);
setPWMoutput3(br1);
wait();
}
for(br1=255;br1>0;br1--)
{
setPWMoutput1(br1);
setPWMoutput2(br1);
setPWMoutput3(br1);
wait();
GIFR=0x80;
}
}
}
}
// External Interrupt 1 service routine
interrupt [EXT_INT1] void ext_int1_isr(void)
{
// Place your code here;
{
setPWMoutput1(0);
setPWMoutput2(0);
setPWMoutput3(0);
wait1();
}
}
anh chị koi cần bổ sung gì thì bổ sung giúp em với.em cảm ơn nhìu.
Comment