极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 26961|回复: 19

请教arduino控制多路舵机不能正常运行的问题

[复制链接]
发表于 2012-10-26 20:35:33 | 显示全部楼层 |阅读模式
本帖最后由 芷雅焉 于 2012-10-31 01:52 编辑

如题,我使用的mega328的板子,要用来控制多个舵机。

我是用二维数组的形式把舵机的角度值存入,然后逐行读取执行:

例如8个舵机,
int data1[200][8]=
{
};

这样的存入数据执行的。

然后发现当只有这么一组数据的时候舵机执行无问题,两组也没有问题,但是再多一点就不行了。。可以烧进去程序,但是却不能运行,舵机完全不动呀。。

求教是怎么回事了?是不是什么不够了?

先行谢谢各位大神啦~
回复

使用道具 举报

 楼主| 发表于 2012-10-26 21:39:21 | 显示全部楼层
我怀疑是spam不够了。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-26 21:40:39 | 显示全部楼层
但是一组数据的时候200×8×2=3200Byte>2048Byte,而这时运行是正常的。。这是怎么回事呢。。
回复 支持 反对

使用道具 举报

发表于 2012-10-26 22:05:40 | 显示全部楼层
感觉是内存溢出了。。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-26 22:07:22 | 显示全部楼层
弘毅 发表于 2012-10-26 22:05
感觉是内存溢出了。。。。

我也觉得是这样子。。但是一组数据的时候200×8×2=3200Byte>2048Byte,而这时运行是正常的。。这是怎么回事呢。。好忧伤。。
回复 支持 反对

使用道具 举报

发表于 2012-10-26 22:13:01 | 显示全部楼层
芷雅焉 发表于 2012-10-26 22:07
我也觉得是这样子。。但是一组数据的时候200×8×2=3200Byte>2048Byte,而这时运行是正常的。。这是怎么回 ...

{:soso_e154:} 介个。。不知道把编译后的hex导入模拟器中,不知道能不能观察到对应的内存占用释放等数据~~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-26 22:14:46 | 显示全部楼层
弘毅 发表于 2012-10-26 22:13
介个。。不知道把编译后的hex导入模拟器中,不知道能不能观察到对应的内存占用释放等数据~ ...

嗯嗯,好期待。。只是这样做真的可以观察出真实的情况吗?
回复 支持 反对

使用道具 举报

发表于 2012-10-29 19:01:09 | 显示全部楼层
首先,你可以一点点的试,一组、两组、三组、四组慢慢试,不能急,也不能随便猜,有想法必须要用实践来验证!这样验证下去,假如到了五组,不行的话,很显然是溢出的原因,有时候溢出的不错,还是可以烧进去的,51的我试过了,AVR的不知道是否是这样子的!你可以试试!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-29 19:40:22 | 显示全部楼层
Randy 发表于 2012-10-29 19:01
首先,你可以一点点的试,一组、两组、三组、四组慢慢试,不能急,也不能随便猜,有想法必须要用实践来验证 ...

嗯~先说声谢谢~我确实试过,一组两组的各种组合都是可以的,但是换成三组就不对了。。呵呵。。应该就是spam不足的问题了吧~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-29 19:42:04 | 显示全部楼层
Randy 发表于 2012-10-29 19:01
首先,你可以一点点的试,一组、两组、三组、四组慢慢试,不能急,也不能随便猜,有想法必须要用实践来验证 ...

我现在在用无线数传。。通过无线模块把一组的数据发进去然后执行,执行完就删除。。目前已经差不多做好了,还差一点点~谢谢啦~
回复 支持 反对

使用道具 举报

发表于 2012-10-29 21:18:17 | 显示全部楼层
芷雅焉 发表于 2012-10-29 19:42
我现在在用无线数传。。通过无线模块把一组的数据发进去然后执行,执行完就删除。。目前已经差不多做好了 ...

加油,思路很重要哈!到时候做好记得发个帖子给大家围观哦!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-30 18:53:15 | 显示全部楼层
Randy 发表于 2012-10-29 21:18
加油,思路很重要哈!到时候做好记得发个帖子给大家围观哦!

现在已经做好了,还顺便学习了一下C#。。用C#做了一个数据自动发送器。感觉C#做小程序真心简单啊。。之前白学了那么久的MFC了。。
回复 支持 反对

使用道具 举报

发表于 2012-12-15 15:41:56 | 显示全部楼层
樓主的動作組是寫死的吧?
如果flash還夠的話推薦用PROGRAM這個關鍵字把數組寫進flash
詳細在arduino官網能找到介紹
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-12-15 16:26:11 | 显示全部楼层
jack4904 发表于 2012-12-15 15:41
樓主的動作組是寫死的吧?
如果flash還夠的話推薦用PROGRAM這個關鍵字把數組寫進flash
詳細在arduino官網能 ...

有program这个关键字吗?没搜到呀。。在哪里呢?谢谢~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-12-15 16:31:59 | 显示全部楼层
jack4904 发表于 2012-12-15 15:41
樓主的動作組是寫死的吧?
如果flash還夠的話推薦用PROGRAM這個關鍵字把數組寫進flash
詳細在arduino官網能 ...

我的动作组是固定的,本来就是用数组存储写在代码中的。这个应该就是在flash中的吧?
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-1 06:01 , Processed in 0.040953 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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