打印

求助:亲各位大哥帮我看看这个问题(和中断有关),谢谢

[复制链接]
1858|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
星星电灯|  楼主 | 2007-8-15 10:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#define uchar8 unsigned char
U2_Select     =  P1^0;
sbit   SW1_Start_1            =  P0^0;   
sbit   SW1_Demomusic_2        =  P0^1;  
uchar8 mydata = 1;  
void f1()
{
  U2_Select = 0;   
  SW1_Start_1 = 1;   //运行完此句,就进入了中断
  mydata = 5;
  SW1_Demomusic_2 = 0;
}

void timer0(void) interrupt 1   
{
  TH0 = 0xb8;                  
  TL0 = 0x00;
  U2_Select = 1;
}

请教:
SW1_Start_1 = 1 和 SW1_Demomusic_2 = 0 
必须 U2_Select 为 0 才能运行的,
假设 运行完 SW1_Start_1 = 1;   就进入了中断
进入中断后,把 U2_Select 置高了,那么
出中断后,还能运行 SW1_Demomusic_2 = 0;
这句程序吗(这句程序需要 U2_Select 为低才能运行的)

谢谢!




如果不执行的话
那要怎么写啊?


bit    myu2 = 0;
void f1()
{
  U2_Select = 0;   
  SW1_Start_1 = 1;   //运行完此句,就进入了中断
  mydata = 5;
  U2_Select = 0; 
  SW1_Demomusic_2 = 0;
}


还是怎么写啊?

void timer0(void) interrupt 1   
{
  TH0 = 0xb8;                  
  TL0 = 0x00;
  myu2  = U2_Select;
  U2_Select = 1;
  U2_Select = myu2;
}

这样,是吗?
myu2 是定义为 bit ,是吗?

谢谢!

相关帖子

沙发
gjg191| | 2007-8-15 10:14 | 只看该作者

dd

要是女生亲一下也无所谓!你的意思说的很不明白啊!
进入中断后,把 U2_Select 置高了,那么
出中断后,还能运行 SW1_Demomusic_2 = 0;
这句程序吗(这句程序需要 U2_Select 为低才能运行的)
看你的程序能执行,想不执行就加个 if(U2_Select==0){SW1_Demomusic_2 = 0;}

使用特权

评论回复
板凳
星星电灯|  楼主 | 2007-8-15 10:40 | 只看该作者

谢谢,我的程序为什么还能执行啊,

谢谢,我的程序为什么还能执行啊,
我在中断里把 
U2_Select = 1; 
置高了啊

可是 SW1_Demomusic_2 = 0; 是在 U2_Select 为低的情况下执行的

现在我需要执行 SW1_Demomusic_2 = 0; 这句话

这要怎么办啊?

谢谢!

使用特权

评论回复
地板
gjg191| | 2007-8-15 10:55 | 只看该作者

dd

 U2_Select = 0;   
  SW1_Start_1 = 1;   //运行完此句,就进入了中断
  mydata = 5;//中断完后继续从这里执行
  SW1_Demomusic_2 = 0;
你没加条件判断当然要执行了.

使用特权

评论回复
5
gjg191| | 2007-8-15 11:01 | 只看该作者

dd

你把的目的说出来,对P0.1口操作干什么?

使用特权

评论回复
6
星星电灯|  楼主 | 2007-8-15 11:09 | 只看该作者

谢谢大哥,是这样的!

P1.0 接在 74HC245 上,为低,则选中这块芯片

因为中断里有程序把 u2_select 置高了
(这些程序我没有写出来)
我希望跳出中断后
能继续运行
SW1_Demomusic_2 = 0;

(但是 SW1_Demomusic_2 = 0; 需要在 U2_Select 为低的情况下才能执行的)
谢谢!

使用特权

评论回复
7
gjg191| | 2007-8-15 11:30 | 只看该作者

dd

还是不太明白,你是要在什么情况下执行SW1_Demomusic_2 = 0; U2_Select 对他有什么限制吗?

使用特权

评论回复
8
星星电灯|  楼主 | 2007-8-15 14:35 | 只看该作者

我需要在任何情况下都执行 SW1_Demomusic_2 = 0;

我需要在任何情况下都执行 SW1_Demomusic_2 = 0;

U2_Select 为第可以选中芯片啊

谢谢!

使用特权

评论回复
9
gjg191| | 2007-8-15 15:14 | 只看该作者

dd

你的意思是不管U2_Select为1还是0都执行 这句话吗SW1_Demomusic_2 = 0;

使用特权

评论回复
10
zhushuping| | 2007-8-15 15:23 | 只看该作者

看不懂

看不懂,不知何意

使用特权

评论回复
11
bbs21iccom| | 2007-8-15 15:32 | 只看该作者

123

使用特权

评论回复
12
ayb_ice| | 2007-8-15 16:29 | 只看该作者

表达不清楚

看不懂,不知何意...

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

74

主题

121

帖子

1

粉丝