230.C语言循环的相关延时计算

复制代码
// 方法1:明确的延时
#define DELAY_US(us) { \
    volatile uint32_t count = (us) * (CPU_FREQ_MHZ); \
    while(count--); \
}

AXI_REG_WRITE(RST, 1);
DELAY_US(1);  // 1微秒复位脉冲
AXI_REG_WRITE(RST, 0);
DELAY_US(1);
AXI_REG_WRITE(RST, 1);

// 方法2:防止优化的空循环
void delay_us(uint32_t us) {
    volatile uint32_t count = us * 100;  // 粗略延时
    while(count--);
}

// 方法3:使用DSB指令确保写完成
AXI_REG_WRITE(RST, 1);
__DSB();  // Data Synchronization Barrier
AXI_REG_WRITE(RST, 0);
__DSB();
AXI_REG_WRITE(RST, 1);
相关推荐
贫民窟的勇敢爷们21 小时前
Java 与 Python 如何选型与融合
java·开发语言·python
流氓也是种气质 _Cookie21 小时前
Chrome Performance常见名词解释(FP, FCP, LCP, DCL, FMP, TTI, TBT, FID, CLS)
开发语言·javascript·ecmascript
gihigo199821 小时前
基于MATLAB的LTE物理层仿真系统
开发语言·matlab
刚子编程21 小时前
C# Join 实战:左连接写法、字符串拼接与 EF Core 性能调优
开发语言·c#·solr·join
fie888921 小时前
基于粒子群优化(PSO)算法的带STATCOM的IEEE 30节点系统最优潮流MATLAB实现
开发语言·算法·matlab
Stream_Silver1 天前
【JNA实战:Java无缝调用Windows API模拟键盘输入】
java·开发语言·windows
焦糖玛奇朵婷1 天前
回收小程序开发案例分享
java·开发语言
yuanpan1 天前
Python 网页数据爬取入门教程:requests + BeautifulSoup 从解析到保存
开发语言·python·beautifulsoup
炸膛坦客1 天前
嵌入式 - 数据结构与算法:(1-9)数据结构 - 队列(Queue)
c语言·数据结构
lbb 小魔仙1 天前
基于Python构建RAG(检索增强生成)系统:从原理到企业级实战
开发语言·python