2811|4

81

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于中断的程序 [复制链接]

我想写有两个中断的程序,但是引起混乱,是不是写中断语句的时候也要像51单片机那样编号啊?
#pragma vector=UART0RX_VECTOR
__interrupt void UART0_RX_ISR(void)
{
unsigned short data=0;
data=U0RXBUF; //读取接受到的数据并且发送到PC机
sent_byte( data);//发送回PC
PC_I_set=data;//设置一个缓存
modify(PC_I_set);//校正
pc_to_lcd_disp(PC_I_set);//送往液晶屏显示

//lcd_disp

}//这是串口中断
#pragma vector=PORT1_VECTOR
__interrupt void Port1_Init()
{
P1IFG&=~BIT1;
switch(rev_cnt)
{
case 0: rev_cnt++;break; //开始位
case 1:rev_data>>=1;
if(P6IN&BIT1)
{rev_data|=0x80;}
rev_cnt++;break;
case 2:rev_data>>=1;
if(P6IN&BIT1)
{rev_data|=0x80;}
rev_cnt++;break;
case 3:rev_data>>=1;
if(P6IN&BIT1)
{rev_data|=0x80;}
rev_cnt++;break;
case 4:rev_data>>=1;
if(P6IN&BIT1)
{rev_data|=0x80;}
rev_cnt++;break;
case 5:rev_data>>=1;
if(P6IN&BIT1)
{rev_data|=0x80;}
rev_cnt++;break;
case 6:rev_data>>=1;
if(P6IN&BIT1)
{rev_data|=0x80;}
rev_cnt++;break;
case 7:rev_data>>=1;
if(P6IN&BIT1)
{rev_data|=0x80;}
rev_cnt++;break;
case 8:rev_data>>=1;
if(P6IN&BIT1)
{rev_data|=0x80;}
rev_cnt++;break;
case 9: rev_cnt++;break; //校验位
case 10: //停止位
rev_cnt=0;
rev_flag=1; //置接收到数据标识位
delay(15000);
break;
default:break;
}
}//这是键盘中断
当我把两个中断都加到一个程序时引起混乱了,是不是一个程序里只能用一个中断符号,而其他的只能用中断标志位判断;或者是中断符号也要编号??

最新回复

没描述清楚  - -  详情 回复 发表于 2009-4-30 16:10
 
点赞 关注

回复
举报

83

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
不用编号的
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
问题你要描述清楚啊,引起什么混乱了?
 
 
 

回复

23

帖子

0

TA的资源

一粒金砂(初级)

4
 
不同定义不同的中断向量
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

5
 
没描述清楚  - -
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表