makeflyeasy 发表于 2015-3-14 16:51:20

八轴研发进度:IMU调试完成,坐等嘉立创发货。

本帖最后由 makeflyeasy 于 2015-3-14 20:58 编辑

花了一天把IMU搞定了,制定了一套数据规则。每帧33个字节,输出频率100HZ。坐等八轴底板一到,IMU就可以直接弄上去调PID了。八轴计划弄成X模式。



此外,嘉立创这是把我的板子做烂了吗?




merphy 发表于 2015-3-14 16:58:12

本帖最后由 merphy 于 2015-3-14 17:05 编辑

这是干什么呢,这题出好再发,那会我看是34个字节

zzipeng 发表于 2015-3-14 17:02:40

楼主出题考版主吗。。。菜鸟不懂。。坐看好戏{:titter:}

lmt50211 发表于 2015-3-14 17:13:16

这个以100HZ速率发送有什么特殊意义吗?

makeflyeasy 发表于 2015-3-14 17:13:40

lmt50211 发表于 2015-3-14 17:13
这个以100HZ速率发送有什么特殊意义吗?

有               

merphy 发表于 2015-3-14 17:17:50

本帖最后由 merphy 于 2015-3-14 17:22 编辑

串口中断里边执行,除第一个启动发中断函数,

其余数据和判断发完成标志也要发送也在串口中断中完成。

计数到33个,完成后后给完成标志,


定时器中中断,判断发完成标志,通过标志给主函数中一个启动发送标志,,主函数中根据定时器发 标志启动第一个发送,计数器加一,清启动标志。

leafstamen 发表于 2015-3-14 17:40:22

楼主题出错了。
把小明改成小红,并且在大胡子的监督下曝照,这样就有答案了。

takashiki 发表于 2015-3-14 18:54:42

因为串口中断优先级低于定时器0优先级,无法进入串口中断。LZ,请问IP寄存器是干啥用的?

makeflyeasy 发表于 2015-3-14 19:35:18

takashiki 发表于 2015-3-14 18:54
LZ,请问IP寄存器是干啥用的?

恭喜 takashiki 抢答成果!满分!

HalenYU 发表于 2015-3-14 20:17:38

我认为IP,IE都可以

小李非刀 发表于 2015-3-14 20:39:10


115200的速度发送33个字节,大约3ms,100HZ发送,就是10ms发一次,轻松实现。
u8 xdata TxBuf;   //发送缓冲
u8TxLength;   //发送长度
u8TxCnt;       //发送计数
u8TxBusy;//发送忙标志,避免资源竞争错误

某个任务要 发送时,先判断TxBusy是否空闲,空闲则装载发送缓冲,启动发送,下面是描述性程序:
if(TxBusy == 0)//空闲
{
    for(i=0; i<33; i++)   TxBuf = source;//source[]为要发送的数据,随便的数据
    TxLength = i;   //发送的长度
    TxCnt = 0;    //发送计数清0
    TxBusy = 1;   //标志发送忙
    TI = 1;       //启动发送
}


发送中断:
if(TI)
{
   TI = 0;
   if(TxCnt < TxLength)   //还有数据要发
{
      SBUF = TxBuf;
}
elseTxBusy = 0;   //发送完成
}

makeflyeasy 发表于 2015-3-14 20:51:00

小李非刀 发表于 2015-3-14 20:39
115200的速度发送33个字节,大约3ms,100HZ发送,就是10ms发一次,轻松实现。
u8 xdata TxBuf;   // ...

恩,我主要是不知道怎么在定时器0中断函数里调用串口,在主函数里写不靠谱,容易被打断。 8楼提醒了我,我一直没注意IP寄存器这个问题,以前没研究过,加了个PS=1;就解决问题了。

枭狼 发表于 2015-3-22 09:20:09

IMU模块怎么用串口发送,为什么不是IIC
页: [1]
查看完整版本: 八轴研发进度:IMU调试完成,坐等嘉立创发货。