打印

嵌入式软件

[复制链接]
1374|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xishuidemian|  楼主 | 2014-10-29 19:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
xlsbz| | 2014-10-30 13:41 | 只看该作者
你问的问题本身有问题~!
主循环周期固定这个说法本身是错误的。

你的意思是
while (1)
{
    if (20ms到达) {
        搞发动机
    }
    if (100ms到达) {
        搞串口;
    }
}
主循环要尽可能短?为什么?
你是在问问题 还是在又问又答??

使用特权

评论回复
板凳
keer_zu| | 2014-10-30 17:23 | 只看该作者
有没有精度的要求啊。

使用特权

评论回复
地板
xishuidemian|  楼主 | 2014-10-30 20:01 | 只看该作者
xlsbz 发表于 2014-10-30 13:41
你问的问题本身有问题~!
主循环周期固定这个说法本身是错误的。

主循环尽可能短是因为发动机的很多控制是需要串口指令控制的,如果主循环长则响应不及时。比如串口中断先收到一个手动加指令,然后又来一个手动减指令,则有可能前面的手动加无法执行。
至于你说主循环周期固定,我的意思并不是说周期完全是固定的。是因为发动机控制的时候有很多分支,有些时间比较长,有些短。现在飞控提出一个要求让我们的周期要跟他们匹配起来。
我这个是涡喷发动机。

使用特权

评论回复
5
xishuidemian|  楼主 | 2014-10-30 20:09 | 只看该作者
keer_zu 发表于 2014-10-30 17:23
有没有精度的要求啊。

周期精度要求不高,但是希望对指令的响应能快一些。

使用特权

评论回复
6
xishuidemian|  楼主 | 2014-10-30 20:19 | 只看该作者
顺便再问大家一个问题:串口查询发送的时候,一般要用WHILE查询标志位,如果说犹豫什么原因导致标志位一直不置位,那么主循环就一直停在那了。由于特殊原因我这个程序还不能用看门狗。虽然从来没碰到这种情况发生,但一直心理不踏实。想这个需要弄定时跳出吗?还是有什么好的办法?

使用特权

评论回复
7
hjjadg| | 2014-10-30 20:30 | 只看该作者
xishuidemian 发表于 2014-10-30 20:19
顺便再问大家一个问题:串口查询发送的时候,一般要用WHILE查询标志位,如果说犹豫什么原因导致标志位一直 ...

设定中断或者设定超时判断试试。比如  while(a){if(a>=20){a=0;}   其它语句}

使用特权

评论回复
8
xlsbz| | 2014-10-30 21:10 | 只看该作者
xishuidemian 发表于 2014-10-30 20:01
主循环尽可能短是因为发动机的很多控制是需要串口指令控制的,如果主循环长则响应不及时。比如串口中断先 ...

你现在这个理解,基本没办法写好软件了。你先把需求说清楚。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
lwm1368 + 1 赞一个!
9
xlsbz| | 2014-10-30 21:13 | 只看该作者
xishuidemian 发表于 2014-10-30 20:19
顺便再问大家一个问题:串口查询发送的时候,一般要用WHILE查询标志位,如果说犹豫什么原因导致标志位一直 ...

unsigned int i=1000;
while(i--);

使用特权

评论回复
10
604603487| | 2014-11-2 10:25 | 只看该作者
定时器中断可以不

使用特权

评论回复
11
keer_zu| | 2014-11-21 18:14 | 只看该作者
问题解决了?期待分享感悟。。。。。。。。。。。。

使用特权

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

本版积分规则

15

主题

43

帖子

0

粉丝