打印
[STM32]

单片机中断程序中加入了延时 主程序不怎么执行请大家帮忙

[复制链接]
1906|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
aimi0921|  楼主 | 2016-7-3 09:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1))
                                     {
                                     delay_ms(2);
                                     for(i=0;i<100;i++)
                                               {
                                               tempbuf=Get_Adc(6,1);//ADC0
                                               }
}
                            else
                                     {
                                              delay_ms(2);
                                               for(i=0;i<100;i++)
                                               {
                                               tempbuf[i+100]=Get_Adc(7,1);//ADC1
                                               }
                                      }
                  

相关帖子

沙发
xuyaqi| | 2016-7-3 16:54 | 只看该作者
只给这点信息不好判断。

使用特权

评论回复
板凳
huangxz| | 2016-7-4 07:12 | 只看该作者
对单片机编程来说,中断里面加延时是不好的做法
主程序不执行的原因有很多,不一定是加延时引起的,而且关键一点,你是确定主程序不执行了吗

使用特权

评论回复
地板
dzz1989| | 2016-7-4 08:33 | 只看该作者
仿真一下。或者没有清狗。

使用特权

评论回复
5
冰零分子| | 2016-7-4 09:31 | 只看该作者
就上面一点看不出有没有其他原因,

但是中断里耗时太长不是明智的选择,

有可能这个中断没完成下个中断又到来,

僵死在中断里也会死机

使用特权

评论回复
6
anvy178| | 2016-7-4 09:34 | 只看该作者
你这个是什么中断里面的内容呀 ,别告诉我是在定时器里面这样弄

使用特权

评论回复
7
jekey| | 2016-7-4 09:38 | 只看该作者
把中断里面的延时去掉。换个思路实现。

使用特权

评论回复
8
aimi0921|  楼主 | 2016-7-4 09:56 | 只看该作者
jekey 发表于 2016-7-4 09:38
把中断里面的延时去掉。换个思路实现。

关键是没有思路 高人提醒一下吧!

使用特权

评论回复
9
aimi0921|  楼主 | 2016-7-4 09:56 | 只看该作者
huangxz 发表于 2016-7-4 07:12
对单片机编程来说,中断里面加延时是不好的做法
主程序不执行的原因有很多,不一定是加延时引起的,而且关键一 ...

主程序在执行 就是慢很多

使用特权

评论回复
10
lgq1542380129| | 2016-7-4 09:57 | 只看该作者
中断服务函数中,尽量不要用延时。楼主程序中可能有多个中断,在延时式可能触发了(根据优先级是否执行),待此中断结束后,看楼主的函数用的应该是STM32,对于cortex-m3中断有咬尾机制,如果这个中断时定期触发,就会出现楼主的情况。

使用特权

评论回复
11
ningling_21| | 2016-7-4 15:56 | 只看该作者
aimi0921 发表于 2016-7-4 09:56
主程序在执行 就是慢很多

时间都被中断中的延时耗掉了,主程序能不慢么

使用特权

评论回复
12
aimi0921|  楼主 | 2016-7-6 09:45 | 只看该作者
lgq1542380129 发表于 2016-7-4 09:57
中断服务函数中,尽量不要用延时。楼主程序中可能有多个中断,在延时式可能触发了(根据优先级是否执行), ...

关键是有没有什么好的解决办法?

使用特权

评论回复
13
wangyy608| | 2016-7-6 10:01 | 只看该作者
你想要实现什么样的目的,这样大家才能提供思路

使用特权

评论回复
14
lgq1542380129| | 2016-7-6 12:08 | 只看该作者
aimi0921 发表于 2016-7-6 09:45
关键是有没有什么好的解决办法?

分析原因,才能找到解决办法。如果中断很频繁这样写程序架构就有问题了

使用特权

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

本版积分规则

8

主题

26

帖子

1

粉丝