![]() |
|
|
|
|
#1 |
|
Đệ tử 3 túi
|
khi đang ở case 1, có ngắt thì bien++, tức là sẽ chuyển sang case 2 chứ ko quay lại case1.
còn nếu muốn chuyển sang case 3 chẳng hạn thì mình dùng lệnh goto. bạn xem chương trình mình viết nha ![]() |
|
|
|
|
|
#2 | ||
|
Đệ tử 7 túi
Tham gia ngày: May 2005
Bài gửi: 258
: |
Trích:
Code:
#include <16f877a.h>
#include <def_877a.h>
#device *=16
#FUSES NOWDT, HS
#use delay(clock=20Mhz)
int8 bien=0, i=0;
#INT_EXT
void ngat_ngoai()
{
bien++;
if(bien>3)bien=0;//dem=0->3
if(bien==2)i=1;
else i=0;
}
void main()
{
enable_interrupts(GLOBAL);
enable_interrupts(INT_EXT);
ext_int_edge(H_TO_L);
trisb=0x01;
trisd=0;
portd=0x00;
while(true)
{
if(i==1)goto here;
switch(bien)
{
case 0: {portd=0x01;delay_ms(500); break;}
case 1: {portd=0x02;delay_ms(500); break;}
case 2: {portd=0x04;delay_ms(500); break;}
case 3: here: {portd=0x08;delay_ms(500); break;}
}
}
}
Trích:
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề. |
||
|
|
|
|
|
#3 |
|
Đệ tử 3 túi
|
|
|
|
|