OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4694|回复: 3

定时中断难解的问题

[复制链接]

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2013-5-12
在线时间
0 小时
发表于 2013-11-7 22:29:50 | 显示全部楼层 |阅读模式

            我本想用STM32做一个定时中断发送数据的实验,cpu的频率72MHZ, TIM1的为1MHZ,下面是中断函数,我用了个IO口做反转实验,但发现最后一个else语句中的低电平持续的时间会少于20us,其它的都是稍大于我设的初始值,应该是进入中断的延迟引起的,算是正常的,但出现少于20us的就不正常了,求高手给出解决的办法,至少让第二个判断与最后一个else持续的时间显示相同才是合理,问题可能会出现在哪些地方


 

#define MACRO_TEST_SEND( A )  {PINO_TEST = A;}

void timer1_load(unsigned  count)
{
 
 TIM1_ARR =  count ;
}

static unsigned long test_step = 0;
static unsigned long  test_switch  = 0;
void test_frame()
{
 switch(test_switch)
 {
     case 0:
   if(test_step == 0)
  {
    MACRO_TEST_SEND( 1 );    //方便寻找头
      MACRO_TEST_SEND(0);
      MACRO_TEST_SEND( 1 );
     MACRO_TEST_SEND(0);
     MACRO_TEST_SEND( 1 );
    test_step = 1;
   timer1_load(100);
  }
  else if(test_step == 1)
  {
    MACRO_TEST_SEND( 0 );
     test_step = 2;
    timer1_load(20);
  }
  else if(test_step == 2)
  {
       MACRO_TEST_SEND(1);
   test_step = 3;
   timer1_load(100);
  }
  else 
  {  
   MACRO_TEST_SEND(0);
   test_step = 0;
   timer1_load(20);
  }
     break;
    default:break;
}

 

 

 

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-7 23:28:24 | 显示全部楼层
是不是循环进入中断了?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2013-5-12
在线时间
0 小时
 楼主| 发表于 2013-11-8 09:09:52 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
 void interrupt_timer1(void)
{
test_frame();
TIM1_SR = 0
}
中断函数里面已经对标志位进行了清除,不可能会进入死在中断里面,我是每次在中断进里面加初值设定下次进入中断的时间间隔,工程里面只有这一个定时中断,按道理20us一次准确的进入中断应该是没问题吧,怎么说也是72MHZ的CPU处理速度,但得出的波形每次都是else这语句中的20us时间没有达到 ,实际测得只有17us左右,与test_step=1时的20us相差几个us
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-8 10:31:57 | 显示全部楼层
先化繁为简测试吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-9 10:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表