• 首页
  • 项目
  • 会员
  • 博客
  • 共享建站
  • 秀我网游
  • BUG反馈

只要钻研不要钱

只要钻研不要钱
不要浪费每一分每一秒,珍惜眼前,怀念过去。

博客分类

  • 心情文章
  • LINUX技术
  • 情情的故事
  • 构思
  • C#技术
  • JAVA技术
  • 其它
  • NHibernate
  • 嵌入式开发
  • 娱乐
  • 项目管理
  • 单片机
  • C语言
  • STM32

最新日志

  • 单网卡 Ubuntu 服务器打造 PPTP Server
  • Ubuntu php 环境配置
  • Ubuntu下Ftp的安装和配置(vsftpd)
  • 为Windows 7 Professional安装多语言包
  • 在 .NET Framework 3.5 中管理目录安全主体
  • 自制ghost光盘如此简单
  • NSIS安装制作基础教程
  • Magic Mouse拆解
  • 美国买的thinkpad在国内保修的方法
  • ActiveX控件打包成Cab置于网页中自动下载安装
  • VB控件实现IObjectSafety安全接口,保证控件自动下载
  • 微软代码签名证书(.pvk/.spc)签名指南
  • 如何為你的 firefox plugin 加上新的 method
  • 如何让Firefox Plugin可以在网页中自动安装
  • mozilla firefox 插件开发 快速入门

AT89S52 中断优先级设置

小字体 中字体 大字体


void Openint(void)   //打开中断
{
  EA=1;//开中断
  IT0=1; //外部中断0下降沿触发
  IT1=1; //外部中断1下降沿触发
  EX0=1;//外部中断0
  EX1=1;//外部中断1
  ET0=1;//开timer0中断
  ES=0;//开串口中断

}

void IntGradeSet(void)  //设置优先级
{
  PS=0;      //串口优先级
  PT0=0;  //timer0中断优先级
  PT1=0;  //timer1中断优先级
  PX0=0;  //int0中断优先级
  PX1=0;  //int1中断优先级
}

 

void UARTint(void) interrupt 4   using 3        //串口中断处理
{
 uchar     receivr_buffer;
 TI=0;  //很重要,否则会一直进中断处理程序的!
 EA=0;
 if(RI==1)
   {   
     RI=0;     
     receivr_buffer = SBUF;
     
     if (point == 0)
     {
         if (receivr_buffer == 0xa5)   
            IDChageRx[point++] = receivr_buffer;
             //point++;   
         else point = 0;
     }
     
     else if (point>0 && point<4)
         IDChageRx[point++] = receivr_buffer;
     
     else
     {
       point = 0;
       IDChageRx[0]=0;
       IDChageRx[1]=0;
       IDChageRx[2]=0;
       IDChageRx[3]=0;
     }
  }
 EA=1;
} 

 

 

 

    我现在在开发一个系统,用了三个中断,有外部中断1,定时器中断0,串口中断,我设定 中断的优先级是:定时器中断,串口中断,外部中断,而且我的三个中断经常发生,有可能出现中断三级嵌套,也就是说,正在进行外部中断1,串口中断来了,在 进行串口中断的同时,这时定时器中断来了。这样系统运行可靠吗?
=============================
    我也曾做过一个三级嵌套程序。只不过我是用到两个定时中断和串口中断,正常的中断优先级为:INT0>T0>INT1>T0>串口中断。
    51系列只两个中断优先级。设置时应该保证:高优先级中断和低优先级中断中的若干中断仍要满足上头提到的正常情况下的优先级。如:
要实现:INT1>T0>串口中断,则应该设置如下
SETB PX1
CLR PX0
CLR PT0
CLR PT1
CLR PS(串口中断优先级设置)
你的意思应该是要实现:T0>串口中断>INT0
则设置如下:
SETB PT0
SETB PS
CLR PX0
CLR PX1
CLR PT1
运行可靠。

回顶部回顶部


日志评论


还没有人评论.
姓名:

内容:

验证码:




  • 首页|
  • 关于我们|
  • 服务|
  • 解决方案|
  • 有话要说|
  • 业务咨询|
  • 在线项目|
  • 登录|
  • 联系我们|

Copyright © wholuck 2009. All Rights Reserved.
粤ICP备09081412号