MSP432(Keil5)——3.delay延时驱动

发布者:快乐飞翔最新更新时间:2022-08-04 来源: csdn关键字:MSP432  Keil5  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);  

SysTick->VAL=0x00;         

SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk | SysTick_CTRL_CLKSOURCE_Msk;  

do

{

temp=SysTick->CTRL;

}

while(temp&0x01&&!(temp&(1<<16)));

SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;

SysTick->VAL =0X00;

}


//延时ms

void delay_ms(uint16_t nms)

{

uint16_t i = 0;

for(i=0;i delay_us(1000);


}


delay.h

#ifndef __DELAY_H

#define __DELAY_H


/* DriverLib Includes */

#include


void Delay_Init(void);

void delay_us(uint32_t nus);

void delay_ms(uint16_t nms);


#endif


下一节我会给出如何修改系统时钟频率以及如何查看系统时钟频率

关键字:MSP432  Keil5  delay 引用地址:MSP432(Keil5)——3.delay延时驱动

上一篇:MSP432(Keil5)——4.系统时钟频率修改及查看
下一篇:MSP432(Keil5)——2.按键及外部中断驱动

推荐阅读最新更新时间:2024-11-18 12:00

[单片机][KEIL5] 利用虚拟机或服务器远程编译keil工程,实现网络隔离
利用一个小工具实现远程编译, 命令格式(界面版):虚拟机IP|功能码|项目工程名 命令格式(无界面版):keil_build.exe 虚拟机IP 功能码 项目工程名 编译完成会自动打开编译信息log 客户端可以配对keil使用如下: xxKeil5_Buildkeil_build.exe 192.168.56.101 b @p $p @P是指工程名称,由keil自动填充 虚拟机或服务器直接打开软件运行即可,程序会自动去寻找指定工程并编译。 方法一:工程在本地 服务器将客户端目录映射成网络硬盘。软件会自动去扫描客户端网络硬盘。 方法二:工程在远端 客户端将服务器目录映射到本地成为网络硬盘,软件直接扫描服务器。客户端可
[单片机]
[单片机][<font color='red'>KEIL5</font>] 利用虚拟机或服务器远程编译keil工程,实现网络隔离
【MSP430】关于MSP430的精准延时__delay_cycles的分析
首先我们先看以下代码: #define CPU_F ((double)8000000) //CPU_F代表系统选用的主时钟大小,单位Hz #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) 分析上述代码: 一、8000000为MSP430板载的外部高速晶振提供的8MHz的主时钟频率,单位为Hz 二、__delay_cycles是
[单片机]
STM32的SysTick定时器与Delay延时函数
1.BB一下 原子哥的Delay延时函数,在没有使用OS的情况下,没有使用SysTick中断,而笔者希望通过该中断记录系统时间 不使用OS,使用SysTick中断 不使用OS,不使用SysTick中断 使用OS,使用SysTick中断 2.BB完了,上代码 2.1.不使用OS,使用SysTick中断 #define SYSTICK_INT_MS 500 /* 定义 SysTick 定时器 1/SYSTICK_INT_MS秒中断一次 */ static u8 fac_us=0; static u16 fac_ms=0; static u32 _tickMs = 0; void SysTick_Handler(void)
[单片机]
MSP432学习笔记:将MCLK、SMCLK配置为48MHz
一切尽在代码中: void Clock_Init(void){ //将PJ2、PJ3设置为外部复用模式(HFXT) GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_PJ,GPIO_PIN2|GPIO_PIN3,GPIO_PRIMARY_MODULE_FUNCTION); //设定外部时钟输入频率 CS_setExternalClockSourceFrequency(32768,48000000); //修改核心电压等级为CORE1 PCM_setCoreVoltageLevel(PCM_VCORE1); //开启HFXT(fa
[单片机]
MSP432库函数输出多路任意占空比PWM波
本文适用于msp432库函数开发使用者,且已具备msp432环境(我使用的是keil),已下载SDK包,并有simeplink例程。若需要这些资源的,可以在评论区回复,我看见了会及时发送的! 今天要分享的是使用msp432库函数输出多路pwm,用以控制基础的电机转动。 1)所用到的引脚 P7.4~P7.7 、P2.4~P2.7共八路提供选择 2)查看数据手册 由手册可以知道,定时器TA0,寄存器CCR0~CCR4对应P2.4 - P2.7 定时器TA1,寄存器CCR0~CCR4对应P7.4 - P7.7 3)输出PWM初始化 /* Timer_A Compare Configuration Parameter
[单片机]
<font color='red'>MSP432</font>库函数输出多路任意占空比PWM波
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved