主题中讨论的其他器件:HALCOGEN
要读取 ADC1组1–一个通道配置为 ADC1组2–一个通道配置为 ADC2组2。
在 HALCOGEN 中配置的值是 FIFO 大小=0,因为我们不需要缓冲区,值 BNDB=1,这是最小值。 因此、RAM 大小将设置为2。
我已经定义了类似这样的宏、
#define adc1Group1_ReadFirst (*(volatile UINT32 *) 0xFF3E0000U)
#define adc1Group1_ReadSecond (*(volatile UINT32 *) 0xFF3E0004U)
#define adc1Group2_ReadFirst (*(volatile UINT32 *) 0xFF3A0000U)
#define adc1Group2_ReadSecond (*(volatile UINT32 *) 0xFF3A0004U)
#define adc1Group1FLAG (*(volatile UINT32 *) 0xFFF7C038U)
#define adc2Group1FLAG (*(volatile UINT32 *) 0xFFF7C238U)
在应用中、我可以在每个周期交替读取 RAM 地址、这在应用端工作正常。
从 RAM 中读取值后、我将设置 adc1Group1FLAG|=0x09U;、adc2Group1FLAG|=0x09U 的值。
问题是我从代码开始只能从 RAM 中获得两次值(我认为这是因为 RAM 大小2是通过 BNDB=1设置的)。 之后、0xFF3E0000、0xFF3E0004U、0xFF3A0000U 和0xFF3A0004U 处没有可用的最新值。
一旦代码开始的两个周期结束、0xFFF7C038U、0xFFF7C238U 就会设置为0xA。
随附的 Halcogen 项目和 DIL 供您参考。
谢谢
Sachin