OpenEdv-开源电子网

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

请教定时中断延时函数的问题

[复制链接]

3

主题

17

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2019-2-25
在线时间
10 小时
发表于 2019-3-18 16:00:31 | 显示全部楼层 |阅读模式
3金钱
写了一段程序用按键去控制接触器(YX、BZ)吸合断开,想通过定时中断去处理延时问题,但是仿真只有第一次按按钮的时候有延时效果,请问我的中断函数哪里错了吗?

主程序:
        while(1)                                       
        {
                t=KEY_Scan(1);                                                //设置为MODE1,支持连按模式
                switch(t)
                {                                 
                        case KEYUP_PRES:                                //如果KEY0=1且WKUP=1则输出上行信号;KEY0具有优先级,如果KEY0=1则取消KEY1下行信号(避免同时按导致变频器同时输出上下行)
                                OUT_YX=1;                                        //主接触器吸合
                                YXADZ=1;               
                        if        (BZADZ==1)                                        //延时500ms,打开抱闸接触器
                        {                                                       
                                OUT_BZ=1;                                        //抱闸接触器吸合
                                BZADZ=0;
                        }
                        break;

                        case KEYDOWN_PRES:                                //如果=1输出下行信号;
                                OUT_YX=1;                                        //主接触器吸合
                                YXADZ=1;               
                        if        (BZADZ==1)                                        //延时500ms,打开抱闸接触器
                        {                                                       
                                OUT_BZ=1;                                        //抱闸接触器吸合
                                BZADZ=0;
                        }
                        break;

                        default:
                                OUT_BZ=0;
                                BZATZ=1;
                                if(YXATZ==1)
                                {
                                OUT_YX=0;                               
                                YXATZ=0;
                                }
                                break;
                }
        }                 

延时函数:
void TIM3_IRQHandler(void)   //TIM3中断
{
        if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查指定的TIM中断发生与否:TIM 中断源
        {
                if(YXADZ==0) i=0;
                if(YXADZ==1) i++;
                if(i>=100)
                {
                BZADZ=1;
                YXADZ=0;
                i=0;
                }

                if(BZATZ==0) j=0;
                if(BZATZ==1) j++;
                if(j>=100)
                {
                YXATZ=1;
                BZATZ=0;
                j=0;
                }               
                TIM_ClearITPendingBit(TIM3, TIM_IT_Update);  //清除TIMx的中断待处理位:TIM 中断源                                
        }
}


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

使用道具 举报

3

主题

17

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2019-2-25
在线时间
10 小时
 楼主| 发表于 2019-3-19 08:35:12 | 显示全部楼层
没有大神指导一下吗?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-3-20 02:40:20 | 显示全部楼层
仿真找问题
回复

使用道具 举报

3

主题

17

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2019-2-25
在线时间
10 小时
 楼主| 发表于 2019-3-20 09:01:54 | 显示全部楼层

请问仿真时候出现这个问题可能是因为啥?
debug.JPG
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-3-21 02:05:50 | 显示全部楼层
zydstart 发表于 2019-3-20 09:01
请问仿真时候出现这个问题可能是因为啥?

重试下呢?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

17

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2019-2-25
在线时间
10 小时
 楼主| 发表于 2019-3-21 11:33:31 | 显示全部楼层

好像如果下载程序直接跑不仿真试就没问题,但是连上仿真器就经常弹出这个BUG。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-3-22 01:43:48 | 显示全部楼层
zydstart 发表于 2019-3-21 11:33
好像如果下载程序直接跑不仿真试就没问题,但是连上仿真器就经常弹出这个BUG。

是我们开发板么?
联系下我们技术支持吧
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-24 05:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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