关于产生美国延迟的一个简单问题

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
2个帖子/ 0新
最后一篇
感伤
离线
最后一次露面:2年12个月前
加入:2016-11-28 15:55
关于产生美国延迟的一个简单问题

你好对话框,
我想使用ADC约500〜1K Hz采样率,这需要〜1Us级延迟。代码段是:

adc_init(gp_adc_se,0,gp_adc_attn3x);
adc_enable_channel(adc_channel_p01);
for-loop:
int data = adc_get_sample();
eNqueue(数据);
延迟(1US);

以前我使用软件Timer App_easy_Timer,但我发现简单计时器的最小延迟是10ms太大。当我搜索Timer0时,我发现它们主要用于PWM,音频等。我的问题是1)如何生成〜1us延迟?如果使用Timer0,是否有任何代码片段?2)Timer0在扩展睡眠模式期间工作吗?谢谢!

关键词:
设备:
mt_dialog.
离线
最后一次露面:3个月11小时前
职员
加入:2015-06-08 11:34
嗨敏感,

嗨敏感,

Timer0具有中断功能,您将能够同步使用该中断功能同步读取,关于如何设置Timer0中断功能,可以使用Timer0_General示例。关于1US延迟(500Hz至1kHz是2ms,1ms时期不是1us),您可以将Timer0配置为生成该时段的中断。关于睡眠,所有外围设备都被关闭,包括定时器和ADC。

谢谢mt_dialog.