野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 18006|回复: 2

代码只能跑中断里的程序

[复制链接]
发表于 2018-11-14 08:11:49 | 显示全部楼层 |阅读模式
本帖最后由 又是起用户名 于 2018-11-14 08:31 编辑

1、具体问题:自己用的F103做FOC,现在调试到速度环,功能正常,但是程序在未开始FOC运算的时候,代码正常。一旦开始foc运算后,程序只能跑timer中断里关于FOC的部分。
                       有关滴答中断和while里面的其他代码均没发运行。
2、具体配置如下:timer1做PWM输出,中断频率10KHZ,主要做FOC运算。
                              滴答200ms一次中断,做按键扫描。
                              while里面就反转一个灯,到时可能会加状态机。
3、网上有说法,是因为中断冗长造成的,我测试过了,并不是这个原因。下图说事儿:


回复

使用道具 举报

 楼主| 发表于 2018-11-14 08:19:09 | 显示全部楼层
1、帖子没发上传图片,我简单说说吧。为做FOC运算时timer1  100us中断,通过反转IO测得此时中断程序占用8%的时间。开始进行FOC运算中断执行时间占用25%。从这个数据来看不会存在一次中断未执行完成,又有中断请求。
2、网上还有说法,说中断中调用了浮点运算什么的。这个我也测过,跟着个没关系。其次在运算中所有的浮点运算都是转换成定点数,在处理的,所以不存在这种情况。
     不知道有没有人遇到我这种情况。现在不知道是哪里的问题。是工程配置问题还是其他。所以开贴请教,还希望各路大神不吝赐教。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-15 14:05:12 | 显示全部楼层
问题已解决
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-12-6 16:36 , Processed in 0.042141 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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