256|4

1073

帖子

54

TA的资源

纯净的硅(初级)

【极海APM32F407 Tiny Board】4、DWT实现延时函数 [复制链接]

uint32_t delay_init(void) 
{
	uint32_t c;

	/* Enable TRC */
	CoreDebug->DEMCR &= ~0x01000000;
	CoreDebug->DEMCR |=  0x01000000;

	/* Enable counter */
	DWT->CTRL &= ~0x00000001;
	DWT->CTRL |=  0x00000001;

	/* Reset counter */
	DWT->CYCCNT = 0;

	/* Check if DWT has started */
	c = DWT->CYCCNT;

	/* 2 dummys */
	__ASM volatile ("NOP");
	__ASM volatile ("NOP");

	/* Return difference, if result is zero, DWT has not started */
	return (DWT->CYCCNT - c);
}

void delay_us(uint32_t us) 
{
	uint32_t start = DWT->CYCCNT;
	/* Go to number of cycles for system */
	us *= (SystemCoreClock / 1000000);
	/* Delay till end */
	while ((DWT->CYCCNT - start) < us);
}

void delay_ms(uint32_t ms) 
{
	uint32_t start = DWT->CYCCNT;
	/* Go to number of cycles for system */
	ms *= (SystemCoreClock / 1000);
	/* Delay till end */
	while ((DWT->CYCCNT - start) < ms);
}

DWT外设是M4内核的特性之一。

最新回复

看到大佬用汇编,就有高大上的感觉,太牛了。  详情 回复 发表于 昨天 06:54

回复

3787

帖子

3

TA的资源

版主

  • __ASM volatile ("NOP");
  • __ASM volatile ("NOP");

大佬这就上ASM代码呀


回复

4410

帖子

3

TA的资源

版主

DWT外设 感谢分享


回复

1073

帖子

54

TA的资源

纯净的硅(初级)

lugl4313820 发表于 2023-5-26 07:02 __ASM volatile ("NOP"); __ASM volatile ("NOP"); 大佬这就上ASM代码呀


回复

3787

帖子

3

TA的资源

版主

看到大佬用汇编,就有高大上的感觉,太牛了。

回复
您需要登录后才可以回帖 登录 | 注册

相关帖子
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
PCB设计中格点的设置

PCB设计中格点的设置合理的使用格点系统,能是我们在PCB设计中起到事半功倍的作用。但何谓合理呢? 很多人认为格点设置的越小越好 ...

Actel 交流贴

我想在此地方发一个Actel的使用心得、体会,或在开发过程中所碰到的问题;现在本人还不知道怎么发贴;后面我会陆续上传一些Actel ...

FPGA DCM时钟管理单元的理解

看Xilinx的Datasheet会注意到Xilinx的FPGA没有PLL,其实DCM就是时间管理单元。 --------------------------------------------- ...

(更新)本人学习CAN的所有的资料文档和心得

CAN的协议帧结构其实还不是很难,开始的时候我拿到这个资源的时候都有点蒙了,因为在CAN.H的所定义的结构体和宏定义太多了,结构 ...

关于CAN通信速率设置

一、 CAN时钟周期(Tq)=2*晶振时钟*BRP(波特率预分频值baudrate prescaler) 一个CAN时间称为一个时间量子 Tq 1)同 ...

C6678共享存储器问题

MSMC默认配置为L2,根据用户需要能配置成L3。由于配置为L3只是做了地址映射,所以物理上的访问时间应该还是一个数量级的,相 ...

电压传感器和和电流传感器的使用实验

下面是关于电压传感器和电流传感器的使用实验,多多指教!! 一,电压传感器测量DCDC的电压 实验步骤: 先查询电压传感器的 ...

RS-485收发器:一杯夏天的mojito

当我撰写这篇文章的时候,德州正值炎热的夏天,气温高达95华氏度(32摄氏度)。但因为空调的缘故,我感到非常舒适。有时候,这就 ...

35“万里”树莓派小车——ROS学习(实现Hello world)

学习ROS最好的方法就是使用,ROS官网有中文版教程,安装好ROS后,编写第一个程序“Hello world”。 1 创建工作空 ...

STM32 液晶驱动的一点问题

请问如下图所示,请问:一、 (1)处的PAD 和 (2)处的function 有什么区别,它俩是如何配合工作的 二、 ...

关闭
站长推荐上一条 1/8 下一条
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表