OpenEdv-开源电子网

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

求助,关于定时器中断执行数码管显示的问题

[复制链接]

3

主题

13

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2013-7-15
在线时间
0 小时
发表于 2013-7-15 08:43:22 | 显示全部楼层 |阅读模式

因为需要,我把数码管循环显示程序从main函数中剪出来,放到了定时器3的溢出中断中,定时器的装载值设置的很小,定时器3每0.1秒产生一次中断,但是中断服务子程序中的显示程序只执行最后一行,把最后一行注释掉后只执行倒数第二行,求高端指导下,下面是定时器3的服务子程序:
void TIM3_IRQHandler(void)
 {    //检测是否发生溢出更新事件  
  if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET) 
  {   
               GPIOD->ODR = dis_code[i/1000]|0X000E;          //显示千位
               GPIOD->ODR = dis_code[i/100%10]|0X000D;     //显示百位
               GPIOD->ODR = dis_code[i/10%10]|0X000B;       //显示十位

               GPIOD->ODR = dis_code[i%10]|0X0007;            //显示个位
              TIM_ClearITPendingBit(TIM3,TIM_FLAG_Update); 
  } 
}

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

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2013-7-15 09:32:48 | 显示全部楼层
void TIM3_IRQHandler(void) 
 {
    static int n = 0;


    //检测是否发生溢出更新事件   
  if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET)  
  {
        n++;
        n%=4;
        switch(n)   
        {
            case 0:
                  GPIOD->ODR = dis_code[i/1000]|0X000E;          //显示千位
            break;
             case 1:
            GPIOD->ODR = dis_code[i/100%10]|0X000D;     //显示百位
            break;
              case 2:
            GPIOD->ODR = dis_code[i/10%10]|0X000B;       //显示十位
            break;
         case 3:
              GPIOD->ODR = dis_code[i%10]|0X0007;            //显示个位
              TIM_ClearITPendingBit(TIM3,TIM_FLAG_Update);  
                     break;
            }
  }  
}
业余程序玩家。
回复 支持 反对

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2013-7-15 09:33:20 | 显示全部楼层
建议还是用时间触发来做,没必要用中断。
业余程序玩家。
回复 支持 反对

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2013-7-15
在线时间
0 小时
 楼主| 发表于 2013-7-15 16:36:38 | 显示全部楼层
回复【3楼】ofourme:
建议还是用时间触发来做,没必要用中断。
---------------------------------
有待进一步学习,谢谢了
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2016-5-31
在线时间
3 小时
发表于 2016-8-8 23:41:35 | 显示全部楼层
貌似你时间设置的太短了,进中断后你的时间就够执行一条语句吧
最困难之时,就是离成功不远之日
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 08:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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