Hi
想要了解下面示例中H SADC_DESC_MATCH(0x0)和HSADC_DESC_THRESH_A的行为,
据我了解,
在这种情况下。哪种行为具有更高的优先级?立即简化还是等到 THRSH_A 触发?
Chip_HSADC_SetupDescEntry(LPC_ADCHS, 0, 0, (HSADC_DESC_CH(1) |
HSADC_DESC_BRANCH_NEXT | HSADC_DESC_MATCH(0x1) | HSADC_DESC_THRESH_A |
HSADC_DESC_RESET_TIMER));
Hi,
我想你误解了threshold_A,它不是一个触发源,它是一个比较寄存器,ADC采样结果会自动与threshold_A寄存器进行比较,然后更新标志或触发中断,表明模拟信号低于阈值或高于阈值。
如果设置HSADC_DESC_MATCH(0x10),adchs模块内部有一个计数器,tick就是ADC时钟,经过硬件/软件触发后,当计数器达到16或者0x10时,ADC就会进行转换,所以ADC的转换速率是Fadc/16。如果设置HSADC_DESC_MATCH(0x00),ADC会在每个ADC时钟周期产生一个样本。
希望可以帮到你
BR
荣向军
我不太明白。
这里是将HSADC_DESC_THRESH_A和HSADC_DESC_MATCH(0x10)设置为描述符的情况。
那么当threshold_A在hsadc定时器0x5触发时,simplen的定时时钟是多少?时钟 0x5、0x6 还是 0x10?
谢谢
彼得
Hi,
Q1)在这种情况下,H SADC_DESC_MATCH(0x0)将立即开始采样。
>>>>>HSADC_DESC_MATCH(0x0)并不意味着ADC转换器立即启动,HSADC_DESC_MATCH(0xxx)可以控制ADC采样时间(ADC转换率)。设置 HSADC_DESC_MATCH(0x00) 意味着 ADC 可以为每个 ADC 时钟获取一个样本。
您可以通过设置触发寄存器中的 SW_TRIGGER 位来使用软件触发器来启动 ADC 转换,请参阅 48.6.5 触发寄存器部分。
您可以通过设置 ADCHS_TRIGGER_IN 寄存器来使用硬件触发器来启动 ADC 转换,请参阅 18.4.25 ADCHS 触发器输入多路复用器(ADCHS_TRIGGER_IN)部分。
Q2)并且HSADC_DESC_THRESH_A将在触发阈值_A处开始简单化。
>>>>>DESCRIPTOR0x[THRESHOLD_SEL] 选择 ADC 结果比较阈值寄存器,与 ADC 启动无关。
希望可以帮到你
BR
荣向俊