wxdjs 发表于 2025-1-7 15:42:40

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

<p>请问如果8h采样 adc dma方式10个通道采样,256次平均值,如果指定首地址xram 0000H,</p>
<p>是不是dma采样时,地址从0~ (10-1)(2 *256+4)+2 *256+3 都被占用了?</p>

DebugLab 发表于 2025-1-7 17:41:19





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

DebugLab 发表于 2025-1-7 17:44:53


通道数*(次数*2字节+4字节)
2字节是每个值高8位和低8位,4字节是通道号、结果余数、结果高字节、结果低字节

梁工 发表于 2025-1-7 21:08:27

10通道、256次平均,则需要内存 = (256*2+4)*10=5160字节。
页: [1]
查看完整版本: 8h系列adc用dma方式,首地址及地址数量问题