查看: 5937|回復: 9
打印 上一主題 下一主題

[提問(wèn)] [緊急求助]MP等高手幫我看看這個(gè)函數咋寫(xiě)啊

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2010-10-11 15:10:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
關(guān)鍵詞: 高手 , 函數 , 求助
50積分
假設有一個(gè)長(cháng)度為100的數組緩沖區,數據會(huì )按照從0-100的順序順次更新緩沖區,當更新到100時(shí)然后
再次回到0開(kāi)始更新。
現在我想通過(guò)上位機讀取這個(gè)數組緩沖區的數據,但是每次讀取的個(gè)數最大為10個(gè),而且不能跨區去讀
當知道要讀的數據起始數據地址addr,以及要讀的個(gè)數num時(shí),如何計算讀取的次數和每次讀多少個(gè)?
數據舉例:
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)
如何編寫(xiě)這個(gè)判斷函數啊,怎么想都感覺(jué)不簡(jiǎn)潔,各位有什么高見(jiàn)
請老郭等我解決完這個(gè)問(wèn)題再拆遷,好嗎?

沙發(fā)
發(fā)表于 2010-10-11 15:18:40 | 只看該作者
仔細研究ring buffer后,你的困惑就沒(méi)了
板凳
發(fā)表于 2010-10-11 17:08:02 | 只看該作者
小磚,看看串口中斷發(fā)送。。。
這里是一次發(fā)送10個(gè),稍微改下代碼。。。
地板
發(fā)表于 2010-10-11 17:17:42 | 只看該作者
隨便百度一下串口中斷發(fā)送, 百出來(lái)一文木細看,磚頭自己瞧瞧基于雙緩沖隊列的串口通信模塊的研究與實(shí)現 基于雙緩沖隊列的串口通信模塊的研究與實(shí)現.rar (42.36 KB)
地下室
發(fā)表于 2010-10-11 17:19:16 | 只看該作者
汗,英語(yǔ)丟光了,蝦米事RING BUFFER?
6
發(fā)表于 2010-10-11 18:36:00 | 只看該作者
小黃,你怎么從磚塊的敘述中看出雙緩沖區的?
7
發(fā)表于 2010-10-11 20:09:02 | 只看該作者
  毛片G,雙緩沖是收發(fā)各一個(gè)賽。!,F在磚頭只要用一個(gè)。。。
8
發(fā)表于 2010-10-11 21:59:05 | 只看該作者
我并不是否定雙緩沖乒乓操作的優(yōu)勢
只是磚塊要解決的不是dual buffer的問(wèn)題,而是ring buffer的問(wèn)題
9
發(fā)表于 2010-10-11 22:31:35 | 只看該作者
  哪來(lái)乒乓。。。   剛才仔細瞄了下,確認兩個(gè)緩沖是串口發(fā)送一個(gè),串口接收一個(gè)。。。   小磚相當只做發(fā)送數據,,,不管接收。
10
 樓主| 發(fā)表于 2010-10-12 07:43:38 | 只看該作者
問(wèn)題已解決,謝謝MP的QQ上的講解,使我茅塞頓開(kāi)
改天好好把這個(gè)問(wèn)題整理出來(lái)

小磚相當只做發(fā)送數據,這句是對的,其它和這個(gè)問(wèn)題都無(wú)關(guān)

我解決的既不是串口問(wèn)題,也不是環(huán)形緩沖區的問(wèn)題,而是數據拆包打包的問(wèn)題
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页