查看: 5382|回复: 9

[提问] [紧急求助]MP等高手帮我看看这个函数咋写啊

[复制链接]
发表于 2010-10-11 15:10:28 | 显示全部楼层 |阅读模式
关键词: 高手 , 函数 , 求助
50积分
假设有一个长度为100的数组缓冲区,数据会按照从0-100的顺序顺次更新缓冲区,当更新到100时然后
再次回到0开始更新。
现在我想通过上位机读取这个数组缓冲区的数据,但是每次读取的个数最大为10个,而且不能跨区去读
当知道要读的数据起始数据地址addr,以及要读的个数num时,如何计算读取的次数和每次读多少个?
数据举例:
1.addr=48,num=25,需要读取3次(10,10,5)
2.addr=95,num=8,需要读取2次(5,3)
3.addr=80,num=33,需要读取4次(10,10,10,3)
4.addr=81,num=33,需要读取4次(10,9,10,4)
如何编写这个判断函数啊,怎么想都感觉不简洁,各位有什么高见
请老郭等我解决完这个问题再拆迁,好吗?

发表于 2010-10-11 15:18:40 | 显示全部楼层
仔细研究ring buffer后,你的困惑就没了
发表于 2010-10-11 17:08:02 | 显示全部楼层
小砖,看看串口中断发送。。。
这里是一次发送10个,稍微改下代码。。。
发表于 2010-10-11 17:17:42 | 显示全部楼层
随便百度一下串口中断发送, 百出来一文木细看,砖头自己瞧瞧基于双缓冲队列的串口通信模块的研究与实现 基于双缓冲队列的串口通信模块的研究与实现.rar (42.36 KB)
发表于 2010-10-11 17:19:16 | 显示全部楼层
汗,英语丢光了,虾米事RING BUFFER?
发表于 2010-10-11 18:36:00 | 显示全部楼层
小黄,你怎么从砖块的叙述中看出双缓冲区的?
发表于 2010-10-11 20:09:02 | 显示全部楼层
  毛片G,双缓冲是收发各一个赛。。。现在砖头只要用一个。。。
发表于 2010-10-11 21:59:05 | 显示全部楼层
我并不是否定双缓冲乒乓操作的优势
只是砖块要解决的不是dual buffer的问题,而是ring buffer的问题
发表于 2010-10-11 22:31:35 | 显示全部楼层
  哪来乒乓。。。   刚才仔细瞄了下,确认两个缓冲是串口发送一个,串口接收一个。。。   小砖相当只做发送数据,,,不管接收。
 楼主| 发表于 2010-10-12 07:43:38 | 显示全部楼层
问题已解决,谢谢MP的QQ上的讲解,使我茅塞顿开
改天好好把这个问题整理出来

小砖相当只做发送数据,这句是对的,其它和这个问题都无关

我解决的既不是串口问题,也不是环形缓冲区的问题,而是数据拆包打包的问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表