找回密码
 立即注册
查看: 344|回复: 3

8h系列adc用dma方式,首地址及地址数量问题

[复制链接]
  • 打卡等级:常住居民II
  • 打卡总天数:93
  • 最近打卡:2025-05-01 20:59:58

13

主题

53

回帖

775

积分

高级会员

积分
775
发表于 2025-1-7 15:42:40 | 显示全部楼层 |阅读模式

请问如果8h采样 adc dma方式10个通道采样,256次平均值,如果指定首地址xram 0000H,

是不是dma采样时,地址从0~ (10-1)(2 *256+4)+2 *256+3 都被占用了?

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2025-1-7 17:41:19 | 显示全部楼层
截图202501071739412502.jpg

截图202501071739552542.jpg

  1. #define                MAIN_Fosc        22118400UL   //定义主时钟
  2. #define                ADC_SPEED        15                        /* 0~15, ADC转换时间(CPU时钟数) = (n+1)*32  ADCCFG */
  3. #define                RES_FMT                (1<<5)                /* ADC结果格式 0: 左对齐, ADC_RES: D11 D10 D9 D8 D7 D6 D5 D4, ADC_RESL: D3 D2 D1 D0 0 0 0 0 */
  4.                                                                         /* ADCCFG     1: 右对齐, ADC_RES: 0 0 0 0 D11 D10 D9 D8, ADC_RESL: D7 D6 D5 D4 D3 D2 D1 D0 */
  5. #define                ADC_CH                2                        /* 1~16, ADC转换通道数, 需同步修改 DMA_ADC_CHSW 转换通道 */
  6. #define                ADC_NUM                256                        /* 每个通道ADC转换次数, 需同步修改DMA_ADC_CFG2 转换次数 */
  7. #define                DMA_ADDR        0x800                /* DMA数据存放地址 */
复制代码
  1. unsigned char xdata DMA_Buffer[ADC_CH][ADC_NUM*2+4] _at_ DMA_ADDR;
复制代码
  1.     ADC_Value[channel]=DMA_Buffer[channel][2*ADC_NUM+2];
  2.                                 ADC_Value[channel]<<=8;
  3.                                 ADC_Value[channel]|=DMA_Buffer[channel][2*ADC_NUM+3];
  4.                                 ADC_Value[channel]<<=8;
  5.                                 ADC_Value[channel]|=DMA_Buffer[channel][2*ADC_NUM+1];
  6. //                                ADC_Value[channel]>>=4;        //20bit结果右移4位得16位结果
  7.                                 ADC_Value[channel]>>=8;        //20bit结果右移8位得12位结果
复制代码


DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2025-1-7 17:44:53 | 显示全部楼层

通道数*(次数*2字节+4字节)
2字节是每个值高8位和低8位,4字节是通道号、结果余数、结果高字节、结果低字节
截图202501071743012415.jpg
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2025-1-7 21:08:27 | 显示全部楼层
10通道、256次平均,则需要内存 = (256*2+4)*10=5160字节。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:40 , Processed in 0.113218 second(s), 70 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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