gpt4 book ai didi

c - 编程设备时如何处理最小时间?

转载 作者:太空宇宙 更新时间:2023-11-04 08:35:49 25 4
gpt4 key购买 nike

我真的是嵌入式编程的新手,但我接到了一项任务,要编写一些 C 代码来对我可以向其发送命令(16 位字)的设备进行编程。在给我的规范表上,有一个部分包含设备具有的某些“最小时序”,例如“启用第一个时钟设置时间 = 150ns”。还有其他时序如'Clock width=50ns'等。

该器件具有三个主要引脚,EN、CLK 和 DATA。该设备最初是禁用的,我正在考虑使用状态机来发送命令,但我对最小时间感到困惑。

所以我的问题是:

-我如何合并/补偿工作表上列出的指定最短时间。

-如何在 C 语言中模拟延迟?

最佳答案

这些是最短时间 - 确保您符合规范的最简单方法。是超越他们!这只是比最小值花费的时间更长 - 这很容易;如果这些是最大时间,那就很难了。

如果接口(interface)是在软件中实现的,在大多数情况下超过这些时序会很简单,不仅处理器 GPIO 的频率限制可能使时序低于此不太可能,CPU 指令周期时间和所需的指令数生成信号可能会阻止您接近这些最小时间。

如果您使用 SPI 等硬件通信接口(interface)来生成必要的信号,那么您可以进行更精确的控制,只需配置接口(interface)寄存器即可生成所需的规范时机——你很可能会忽略它们;如果您的处理器和 GPIO 非常快,您可能需要考虑增加延迟;但如果你需要对给定的时间采取任何具体行动,我会感到非常惊讶。新的几十纳秒的延迟最好通过添加 NOP 指令来实现,更长的延迟可能是一个繁忙的循环轮询定时器,或者更长的延迟仍然在等待定时器中断,同时做一些有用的事情。

重要的是,没有必要实现这些最小时序 - 只是不要生成制造商规范之外的信号。

关于c - 编程设备时如何处理最小时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26241934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com