有一些朋友在问C语言中的运算时间要如何计算,现在我举一个简单的例子说明一下。
|
图1 |
如果我们要算for(b=0;b<50000;b++); 晶振为12M,先要设置一下项目的所用的晶振频率。
|
图2:打开项目设置窗口 |
|
图3 |
设置好后按图1在要算时间的程序段前后设两个断点,然后运行程序,开始仿真,按图4中1和2分别打开汇编代码和程序效率评估窗口。
|
图4 |
图5中可以看到程序到了第一个断点也就是所要算的程序段的开始处,就用了389us。
|
图5 |
到了第二个断点也就是所要算的程序段的结束处就用1.850425秒
|
图6 |
用结束处的时间减去开始时间就得到要算程序段所用的时间1.850036秒
用这个方法也可以仿真出任何频率下的任何指令或程序所要用的时间
补漏:也可以看左边工具栏SEC,只是全速运行是数字是不会动的。
|
图7 |
关键字:keil 计算延时 运算时间
引用地址:
用keil计算延时的方法
推荐阅读最新更新时间:2024-03-16 13:48
使用Keil MDK以及标准外设库创建STM32工程
1.1 使用Keil MDK以及标准外设库创建STM32工程 通过上一节对标准外设库的介绍,想必各位读者对标准外设库已经有了基本的认识,然而由于标准外设库中文件众多,很多初学者在开始很长一段时间内甚至都无法完全自己建立一个工程,很多人只是依赖标准外设库或给定的工程模板。本节就介绍怎样利用Keil MDK开发环境和标准外设库来搭建自己的工程。 建立一个基于标准外设库其实并不复杂,网络上也有很多关于怎样在Keil MDK下建立工程的教程,方法也各异,本节所介绍的方法本着少改动、便于使用、方便更换器件等原则,给大家介绍怎样在Keil中创建一个工程,并以一个最简单的例子来说明怎样下载和调试程序。 1.1.1 开发工具与开发环境 1
[单片机]
Keil MDK STM32系列(五) 使用STM32CubeMX创建项目基础结构
概述 从前面介绍的STM32开发可以感受到, 虽然SPL对于纯寄存器方式开发已经是很大的进步, SPL将大部分寄存器配置做了很好的封装, 配置项简单易读, 但是外设与输出脚的映射关系, 配置项的数量, 配置之间的关联都使得配置难度并未降低, 在项目启动阶段依然要通过不断查阅MCU的用户手册去修改方案, 各种情况下的代码例程直接借鉴容易出错, 需要反复尝试, 往往在调通外设这一步就已经耗费了开发人员的大量时间. 所以ST将开发库的重心迁移到了HAL上, 配合HAL的就是STM32CubeMX这个图形化配置工具. 通过图形化界面, 通过预设的逻辑辅助生成代码模板. 这样可以将底层寄存器和外设的复杂定义和逻辑包装在工具界面之下, 避
[单片机]
Keil环境中建立带FreeRTOS的STM32L项目
1、先把source文件夹复制至project目录,然后在keil中添加RTOS文件,如图: 其中heap_2.c按需选择,可以是heap_1.c等,若需croutine型任务则还需添加croutine.c文件。 2、添加include目录,位于source下的include文件夹。 3、把FreeRTOSConfig.h文件复制到source下的include文件夹,或者其他用户文件夹下也可,这是FreeRTOS的功能配置文件,要按需修改的。 4、为了能连接到portmacro.h文件,还需添加include路径Source\portable\RVDS\ARM_CM3 5、以下移植步骤细节需参考“FreeRT
[单片机]
keil error '...' redefinition
如下: H:\KEIL\C51\INC\STCNEW8051.H(8): error C231: 'ACC': redefinition H:\KEIL\C51\INC\STCNEW8051.H(9): error C231: 'B': redefinition H:\KEIL\C51\INC\STCNEW8051.H(10): error C231: 'PSW': redefinition H:\KEIL\C51\INC\STCNEW8051.H(12): error C231: 'CY': redefinition H:\KEIL\C51\INC\STC
[单片机]
mini2440----keil for ARM系列之串口
先说明一下为什么做了点灯我就做串口了,原因是我觉得串口调试通了在做以后的会更加容易,因为有些东西可以通过串口进行打印出来,这样就可以看到自己那里出错了,对于LED程序当然是第一需要做的。因为在中断中是不允许进行打印输出的,所以到时候调试中断就需要用点灯的方式来进行调试。 因此整个流程的实现:先搭建开发环境---------- 再进行一些初始程序的编写(LED与Uart便于以后调试)------------ 各个模块的裸机程序的编写---------------------- 以一个小型项目的形式把所用到的模块都结合起来。 串口的编写: 最最要注意的就是时钟的配置,由于这个问题在我做串口的过程中纠结的时间真的很长,而且没有使用示
[单片机]
s3c2440 ads程序移植到keil中(三) 初步完成
如果我把参数配置发生改变呢 然后再一次编译 要包错误 如下所示 其实我们到这里离 在s3c2440 ads程序移植到keil中(二)中看到这个网友不值提供了方法 而且提供了几个文件的下载地址 http://download.csdn.net/detail/googlemi/5176844 我直接下载下来了 把其中的2440init.s文件直接拷贝复制替代我工作中的2440init.s 该错误消失了 但是出现了 这一个错误 反正修改就能解决 然后 提示了一个错误 意思 就nand.c和nand.h 没有加上去 让后加上去了 编译成功没有错误 这种方式到此结束
[单片机]
MSP432(Keil5)——3.delay延时驱动
本次示例中的延时函数采用了系统内部的systick时钟,学习了正点原子的延时函数写法。 如果你移植出来不是标准的延时,那么就是你的时钟频率设置的不对,我的是48MHz。 delay.c #include delay.h static uint8_t fac_us=0; //初始化延时函数 void Delay_Init(void) { fac_us = SystemCoreClock / 1000000; } //延时us void delay_us(uint32_t nus) { uint32_t temp; SysTick- LOAD=(uint32_t)(nus*fac_us);
[单片机]
在KEIL中实现C语言嵌套汇编语言
一、讲解背景 在单片机学习的过程中,掌握一点汇编语言是非常有必有的,作为低级语言汇编语言在单片机开发中有它不可取代的作用,比如每条指令可以精确的确定延时时间,便于理解非常适合硬件工程师学习。但是要提高单片机技能,必须掌握C 语言编程,因为C 语言有强大的模块化管理思想。我想在很多人学习的过程中即学了汇编语言,又学习了C 语言,那么一个问题便随之而产生,如果将C 语言与汇编语言相互结合,达到更好的编程效果,本次讲解就是基于这个问题而生成的。 二、操作步骤 第一步: 在KEIL 中新建工程及文件并复制以下程序并保存为C 文件: /* 功能:C 语言里嵌套汇编语言,起到抛砖引玉的作用 作者:三维电子杨荣国 日期:2010
[单片机]