keil测量代码执行时间

文章目录

  • 前言
  • 背景
  • 二、使用步骤
    • 软件模拟仿真
    • 连接实物在线仿真
    • 使用代码来计算某个模块或函数等的运行时间
  • 总结


前言

本文参考了KEIL 下如何准确测量代码执行时间?与正点原子的STM32F1开发指南-寄存器版本_V3.3.pdf


提示:以下是本篇文章正文内容,下面案例可供参考

背景

使用的板子是STM32F103ZET6

二、使用步骤

分为连接板子进行在线仿真与软件仿真。

软件模拟仿真

首先按照原子哥上文pdf对魔术棒进行配置。
1.配置Target部分外部时钟晶振为8MHz(与实际一致)!
在这里插入图片描述

2.Debug选项卡配置Dialog DLL及相应的Parameter
在这里插入图片描述
然后开始仿真即可。右下角可以查看时间,还是挺准的,可以摸个底
在这里插入图片描述

连接实物在线仿真

要注意一个问题!
下面设置内核频率这里,需要把默认的10M改为我们实际使用的比如72MHz!!!,然后测量就会很准确
在这里插入图片描述

在这里插入图片描述

使用代码来计算某个模块或函数等的运行时间

以使用基本定时器TIM3为例

timer.h

void TIM3_Int_Init(u16 arr,u16 psc);

extern u32 count  ;
#endif

timer.c

#include "timer.h"

 	 
u32 count = 0;
 
void TIM3_IRQHandler(void)
{ 		    		  			    
	if(TIM3->SR&0X0001)
	{
		count++;		    				   				     	    	
	}				   
	TIM3->SR&=~(1<<0);    
}

void TIM3_Int_Init(u16 arr,u16 psc)
{
	RCC->APB1ENR|=1<<1;	
 	TIM3->ARR=arr;  	  
	TIM3->PSC=psc;  			  
	TIM3->DIER|=1<<0;   
	TIM3->CR1|=0x01;    
  	MY_NVIC_Init(1,3,TIM3_IRQn,2);							 
}

实际使用部分main.c

#include "sys.h" 	
#include "delay.h"	
#include "led.h"
#include "timer.h" 
u32 start_count = 0;
u32 end_count = 0;
u32 time;

int main(void)
{				  
	Stm32_Clock_Init(9);
	delay_init(72);	  	
	LED_Init();		  	
	TIM3_Int_Init(65535-1,7199);//10KHz的计数频率,计数6.5535s之后溢出。
	while(1)
	{
		count = 0;
		TIM3->CNT = 0;
		LED0=0;
		LED1=1;
		delay_ms(300);
		LED0=1;
		LED1=0;
		delay_ms(300);
		end_count = TIM3->CNT;
		time = (end_count + count *65535) / 10;  //单位ms
		delay_ms(50);
	}	 
}


总结

hh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/703534.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot + Mybatis Plus实现登录注册

Spring Boot 实现登录注册 1. 注册 业务逻辑 客户端输入注册时需要的用户参数&#xff0c;比如&#xff1a;账户名、密码、确认密码、其他服务端接收到客户端的请求参数进行校验&#xff0c;然后判断是否有误&#xff0c;有误的地方就将错误信息抛出将密码进行加密之后存储到…

全新抖音快手小红书视频解析去水印系统网站源码

这个系统支持几十种平台&#xff0c;包括抖音、快手小红书以及其他热门社交媒体平台。它可以帮助轻松地下载这些平台上的任何视频&#xff0c;并去除其中的水印&#xff0c;让你可以自由地保存和分享这些视频。 使用方法&#xff1a; 上传压缩包解压&#xff0c;网站信息在inc…

实验演示方波是由正弦波叠加而成的

方波可以看成是由N个正弦波叠加而成&#xff0c;在数学上&#xff0c;方波可以写成这个式子&#xff0c;大家可以看到这个式子里面包含了无数个奇数次的正弦波。 下面通过运放构成的反相求和电路来看一下&#xff0c;正弦波叠加成方波 对于这个反相求和电路&#xff1a; Ui1是…

深度学习Day-20:DenseNet算法实战 乳腺癌识别

&#x1f368; 本文为&#xff1a;[&#x1f517;365天深度学习训练营] 中的学习记录博客 &#x1f356; 原作者&#xff1a;[K同学啊 | 接辅导、项目定制] 一、 基础配置 语言环境&#xff1a;Python3.8编译器选择&#xff1a;Pycharm深度学习环境&#xff1a; torch1.12.1c…

【全开源】Java 白色陪玩高端小程序源码陪练APP源码H5公众号源码电竞系统比心源码

&#x1f3ae;游戏陪玩白色高端小程序&#xff1a;你的专属游戏伙伴 &#x1f389;一、引言&#xff1a;游戏不再孤单 你是否曾在游戏中感到孤单&#xff0c;或是想寻找一个能够与你并肩作战的伙伴&#xff1f;现在&#xff0c;有了这款“游戏陪玩白色高端小程序”&#xff0…

Yapi代码执行 waf绕过实战记录

本文记录了2021年一次有趣的客户目标测试实战。这次经历颇为特别&#xff0c;因此我将其整理成笔记&#xff0c;并在此分享&#xff0c;希望对大家有所帮助。 事件起因 疫情在家办公&#xff0c;准备开始划水的一天&#xff0c;这时接到 boss 的电话说要做项目&#xff0c;老…

3D培训大师:深度沉浸式学习,筑牢基建安全防线

基建行业作为国家发展的基石&#xff0c;横跨公共事业、交通运输、水利环境等核心领域&#xff0c;施工现场的安全保障至关重要。这不仅是为了锤炼员工精湛的操作技能&#xff0c;更是为了提升每一位员工的安全意识&#xff0c;确保他们在复杂的工程环境中游刃有余&#xff0c;…

【Ardiuno】实验使用ESP32单片机实现高级web服务器暂时动态图表功能(图文)

接下来&#xff0c;我们继续实验示例代码中的Wifi“高级web服务器”&#xff0c;配置相关的无线密码后&#xff0c;开始实验 #include <WiFi.h> #include <WiFiClient.h> #include <WebServer.h> #include <ESPmDNS.h>const char *ssid "XIAOFE…

总负债50万,32万网贷已还清,征信花了,多久才能养好?

​近年来&#xff0c;我国网贷市场如同春天的竹笋&#xff0c;一夜间冒出无数。不论企业资质如何&#xff0c;都纷纷涉足网贷领域&#xff0c;导致网贷乱象丛生。在如此环境下&#xff0c;借钱变得轻而易举&#xff0c;门槛低得让人难以置信&#xff0c;许多人一缺钱就想到网贷…

使用CSS、JavaScript、jQuery三种方式实现手风琴效果

手风琴效果有不少&#xff0c;王者荣耀官网&#xff08;源网址 https://pvp.qq.com/raiders/ &#xff09;有一处周免英雄&#xff0c;使用的就是手风琴效果&#xff0c;如图所示。 我试着用css、js、jQuery三种方式实现了这种效果&#xff0c;最终效果差不多&#xff0c;美中不…

【产品经理】发票系统简述

一、发票类型 增值税电子普通发票&#xff1a;简称电票 增值税普通发票和增值税专用发票&#xff0c;简称&#xff1a;纸票 蓝票&#xff1a;开票金额为正值的发票。红票&#xff1a;发票金额为负值的发票。 注&#xff1a;专票电子化系统国家目前在推&#xff0c;后续有更新…

C++ 13 之 常量的引用

c13常量的引用.cpp #include <iostream> using namespace std;void showval(const int &a) {// 给函数形参设置const, 目的是防止后续误操作修改变量值// a 200; // 参数一旦设置为const常量&#xff0c;就无法直接修改&#xff0c;想改需要使用指针cout << …

Spring IoC注解

一、回顾反射机制 反射的调用三步&#xff1a;1&#xff09;获取类。2&#xff09;获取方法。3&#xff09;调用方法 调用方法&#xff1a;调用哪个对象&#xff0c;哪个方法&#xff0c;传什么参数&#xff0c;返回什么值。 方法&#xff08;Do&#xff09;类&#xff1a; …

GPT-4o更易越狱?北航南洋理工上万次测试详解!

GPT-4o&#xff0c;比上一代更容易遭受越狱攻击&#xff1f; 北航和南洋理工的研究人员通过上万次API查询&#xff0c;对GPT-4o的各种模态安全性进行了详细测试。 结果发现&#xff0c;GPT-4o新引入的语音模态带来了新的攻击面&#xff0c;多模态整体安全性不如GPT-4V。 GPT-4o…

SAP 使用BAPI更改分配字段ZUONR不生效解决方案

需求&#xff1a; 使用BAPI变更财务凭证上的ZUONR分配字段&#xff0c;正常情况下使用BAPI:FI_DOCUMENT_CHANGE或者FI_ITEMS_MASS_CHANGE都是可以进行变更的&#xff0c;但是项目上要变更的科目类型是KZ&#xff0c;导致这两个BAPI都没办法进行更改&#xff0c;故对此BAPI进行…

Kali Linux 2022.2 发布,包含 10 个新工具和WSL 改进

Offensive Security发布了Kali Linux 2022.2&#xff0c;这是2022年的第二个版本&#xff0c;具有桌面增强功能&#xff0c;有趣的愚人节屏幕保护程序&#xff0c;WSL GUI改进&#xff0c;终端调整&#xff0c;最重要的是&#xff0c;新的工具&#xff01; Kali Linux是一个Li…

中电金信:产教联合共育人才 AFAC2024金融智能创新大赛启动

当前&#xff0c;人工智能技术正在蓬勃发展&#xff0c;引领着各行各业迈向智能化的新纪元&#xff0c;特别是在金融科技领域&#xff0c;伴随人工智能技术的不断迭代与突破&#xff0c;金融服务的边界也在不断拓展&#xff0c;传统的金融业态正经历着深刻的变革与重塑。 与此同…

SpringCash

文章目录 简介引入依赖常用注解application.yml使用1. 启动类添加注解使用方法上添加注解 简介 Spring Cache是一个框架&#xff0c;实现了基于注解的缓存功能底层可以使用EHCache、Caffeine、Redis实现缓存。 注解一般放在Controller的方法上&#xff0c;CachePut 注解一般有…

给文件夹加密的最简单方法

安当TDE透明加密针对文件夹数据加密的保护方案主要包括以下几个方面&#xff1a; 1. 透明加密机制&#xff1a; 用户无需关心数据的加密和解密过程&#xff0c;操作文件夹时就像处理普通数据一样。加密和解密操作在后台自动进行&#xff0c;对用户和应用程序透明。 2. 高性能加…

【LeetCode 前缀和 + 哈希表】LC_560_和为K的子数组

文章目录 1. 和为K的子数组&#x1f197; 1. 和为K的子数组&#x1f197; 题目链接&#x1f517; &#x1f427;解题思路&#xff1a; 前缀和 哈希表 &#x1f34e; 设i为数组中的任意位置&#xff0c;⽤ sum[i] 表⽰ [0, i] 区间内所有元素的和。 &#x1f34e; 想知道有…