微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > ARM技术讨论 > Cortex-A8怎么写延时函数

Cortex-A8怎么写延时函数

时间:10-02 整理:3721RD 点击:
我想用S5PV210做个温湿度检测系统,用的温湿度传感器是DHT11,该传感器对时序要求挺高的,一般需要延时函数10us,51的延时函数很好写,但是这个我没写过,根本不能确定机器周期是多少,而且写出来也不好验证到底是延时了多长时间。卡了好久,希望大神们帮我解决下,谢谢!

1、如果延时精度要求高,建议用定时器。
2、可以在某个管脚定时拉高拉低,然后用示波器测量。

不带操作系统的话,可以使用如下代码,但是要求你知道,处理器的机器周期
,一般看看 data sheet 和 系统时钟寄存器之后,就可以知道系统时钟了,这个
是基本要求。
/*************************************/
/*with out optimize      cycle       */
/*next : nop               1            */
/*       ...              ...               */
/*       mov  r2,r1        1           */
/*       subs r1,r1,#1     1          */
/*       cmp  r2,#0x00     1        */
/*       bne  next         3            */
/*************************************/
while (delay_count--) {
                __nop();
                __nop();
                __nop();
                __nop();
        };

处理器的频率是1GHZ的,是不带系统的,这个_nop()是自己另外用汇编写的?

你用ARM给的任何编译器,它都支持这个东西。

定时器我用过,但是没有成功,不知道问题出在哪。示波器用来测量倒是挺不错的,只可惜现在没有

哦  我试试看   谢谢

你要根据时钟计算插入的NOP数量,明白汇编的话。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top