This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
第803页:
例如、如果使用序列发生器0、则可以在与第5个采样相关的半字节中设置 END 位、从而使序列发生器0完成
在第5个采样后执行采样序列。
第856页
第5个采样是序列末端
值 描述
0 序列中的另一个采样是最终采样。
1 第5个采样是序列中的最后一个采样。
可以在任何采样位置结束序列。 软件
必须在序列中的某个位置设置 ENDn 位。 定义的样本
在采样包含一组 ENDn 位后、不会请求该位
转换、即使字段可能不为零。
我的问题是、如果第5个采样的结束位被置位、这将是最后一个采样、它将如何执行到第8个采样?
在这种情况下、它不会对该序列进行第八次转换、只会进行5次转换。 如果该序列需要8个不同的采样、则只应在第八步设置 END 位。 但不要将样本数量与 FIFO 深度混淆。 序列0的 FIFO 深度也为8。 如果您将序列配置为5个样本、并在从 FIFO 读取任何值之前再次触发(重新启动序列)、它将继续填充、直到 FIFO 满8个值。
您好!
最出色的"附加组件"、详述了 ADC 的 FIFO 管理-谢谢您-非常感谢。
有一个"sub-case"、其中(部分)但不是全部) FIFO 值已被读取并且(随后)另一个触发器到达。 这可能会改变所描述的"FIFO 的操作"、正如您的帖子所述? 我们以"是否可能"的形式提问-然后可能会指示"测试 FIFO 的当前"填充级别"(假设可能)。。。"
此外、FIFO 的内容是否不是完全"读取/提取"、而是另一个触发信号到达(可能过早)、这些早期 FIFO 是否会导致被过度写入的危险?
感谢 Bob 的这一重要指导以及您的时间/注意力...
尊敬的 Bob:
假设 SS0和 End2被置位;在第一个触发条件下、我将收到3个样本、并且 HTPR 指针将增加到0x03。
1) 1)如果我没有读取它们、那么第二个触发器将写入0x03-0x5、并且 HTPR 将被高级为0x6。 是否会设置溢出标志?
2)是否将第3个触发器写入0x6、0x7、0x0并将高级 HTPR 写入0x1? 这是唯一设置溢出标志的条件吗?
您是出于好奇而询问这些详细信息、还是试图弄清楚如何设置 ADC 转换器? 如果是后者、则应使用 TI 提供的 TivaWare 驱动程序库。 这简化了寄存器详细信息。 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c123gxl\adc_udma_pingpong 中有一个高级示例、显示了如何配置计时器来定期启动 ADC 和 DMA 来读取结果并将其存储在 RAM 中。 序列的步骤是通过调用函数 ADCSequenceStepConfigure()来配置的。 若要配置序列0来转换 AIN0、AIN1和 AIN2、如下所示:
ADCSequenceStepConfigure (ADC0_BASE、0、0、ADC_CTL_CH0); ADCSequenceStepConfigure (ADC0_BASE、0、1、ADC_CTL_CH1); ADCSequenceStepConfigure (ADC0_BASE、0、2、ADC_CTL_CH2 | ADC_CTL_END | ADC_CTL_IE);
请注意、属性 ADC_CTL_END 仅在最后一步中设置。 此外、我选择在通道2转换完成后启用中断请求。
当不使用 DMA 时,FIFO 的读操作通过函数 ADCSequenceDataGet ()来完成。 此函数和其他 TivaWare 函数在:C:\ti\TivaWare_C_Series-2.2.0.295\docs\SW-TM4C-DRL-UP-2.2.0.295.pdf 中进行了介绍。 它读取 FIFO 中的所有值、并将其存储在您提供的缓冲区中。 它返回读取的条目数。 您无需跟踪 FIFO 指针。 对函数 ADCSequenceOverflow()的调用将告诉您是否有 FIFO 溢出。
[引用 user="Bob Crosby"]
您是否出于好奇而询问这些详细信息、
[/报价]
你明白了。 我知道如何编写代码以及代码是否正常工作;但我在上一篇文章中发布了两个问题、我有 一个答案、但我想确保。
请您清除一下吗?
感谢 Bob。
[引用 user="sonMEE"]假设设置了 SS0和 End2;在第一个触发条件下,我将收到3个样本,并且 HTPR 指针将增加到0x03。
[引用 USER="sonMEE]1)如果我没有读取它们、则第二个触发器将写入0x03-0x5、并且 HTPR 将被高级至0x6。 是否设置溢出标志?[/QUERP]
否
[引用 user="sonMEE"]2)是否将第3个触发器写入0x6、0x7、0x0并将高级 HTPR 写入0x1? 这是唯一设置溢出标志的条件吗?
样本将写入0x6和0x7。 溢出标志将被置位并且 HTPR 将为0。 您将松开最后一个采样、而不是第一个采样。