打印

请教一个定时器与串口中断问题

[复制链接]
2693|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
期望的信徒|  楼主 | 2008-1-17 21:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我写了一个小程序做个试验,目的是用定时器T0做中断,串口收到PC机指令后,P2.0端口输出一个脉冲,定时器定时脉冲间隔为10ms,

void serial() interrupt 4 using 3    
{    
     uchar dat;
     if(RI)  
      {
        RI=0; 
        ES=0;
            dat=SBUF;    
     }
}

//*********************************************
void init_serial_comm(void)   
{
     SCON=0x50;       
    TMOD=0x20;       //TMOD: timer 1, mode 2, 8-bit reload 
     PCON=0x00;       //SMOD=0 
     TH1=0x0Fd;      //Baud:9600 
     TL1=0x0Fd; 
      ES=1;
      EA=1;
      TR1=1;          // timer 1 run
}

uchar  receive_char_com(void) 
{
        
     uchar dat;
          while(RI==0);         
     RI=0;
     dat=SBUF;
     return dat;
}
//****************************************
void timer0(void) interrupt 1 using 2 
{
    TH0=-10000/256;      
    TL0=-10000/256; 
    TF0=0;
    ET0=0;
    EA=0;
    mot1_cp=0;
    NOP5();
    mot1_cp=1;       
}
//*****************************
void   motorrun(uint sn)  
{     
           while(sn--)
            {      
         TR0=0;
         TMOD=0x01;    
              TH0=-10000/256;    
              TL0=-10000/256;
              EA=1;
              ET0=1;
              TR0=1;     // timer 0 run                  
              while(TF0==0); 
               TR0=0;
             }
}

//*************************************************************
 void  main(void)      
{    
       uchar dd;
       init_serial_comm(); 
 aa:   dd=receive_char_com(); 
       switch(dd)           
     {
             case 'A':motorrun(50);break;           
        // case'B'             
        }
      goto aa;        
      
}
    试验中发现,在输出所要的50个脉冲以后(正常,本应该回到主程序继续检测串口指令),但主程序无法继续正确执行,即再次输入A,程序不响应,无脉冲输出。是不是定时器中断和串口中断冲突的问题,但是我对之不了解,想请教一下高手给我们介绍一下这方面的知识。谢谢。

相关帖子

沙发
grady1125| | 2008-1-17 23:07 | 只看该作者

两个串口接收函数

第一个串口中断接收,第二建议不要;
接收到的数据放在dat里,设置dat为全局变量更好点

使用特权

评论回复
板凳
liugw| | 2008-1-18 11:23 | 只看该作者

1楼所言极是

另:如果怕冲突何不手动设定中断优先级或者干脆在相应中断时屏蔽其他中断。

使用特权

评论回复
地板
期望的信徒|  楼主 | 2008-1-18 17:22 | 只看该作者

谢谢回复

收到!回头去试一下,呵呵,本人菜青虫一个,倒是从网上学到不少东西,感谢网友的回复!

使用特权

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

本版积分规则

2

主题

3

帖子

0

粉丝