当前位置: 首页 > news >正文

网站制作费用需要多少钱网站主机服务器

网站制作费用需要多少钱,网站主机服务器,静安郑州阳网站建设,网页设计有什么要求1、 硬件环境 1个LED,PB22,高电平点亮 使用外部晶振作为时钟源,晶振频率40MHz。 2、 工程准备 使用[链接 [MSPM0开发]之四 使用不同时钟源配置主时钟点亮LED(SYSCONFIG配置时钟)]中的例程。 时钟配置如下(没有使用锁相环PLL&am…

1、 硬件环境

1个LED,PB22,高电平点亮
使用外部晶振作为时钟源,晶振频率40MHz。

2、 工程准备

使用[链接 [MSPM0开发]之四 使用不同时钟源配置主时钟点亮LED(SYSCONFIG配置时钟)]中的例程。
时钟配置如下(没有使用锁相环PLL):
时钟配置

3、systick初始化探究

3.1 systick配置初始化

打开systick配置页面,单击“add”
在这里插入图片描述
systick参数配置,这里配置定时周期1ms。
为了查看相关函数,可以把中断、使能、开始计数都选上。
在这里插入图片描述
TI的DL库偏底层,在完成以上配置后,编译项目一次。
可以在ti_msp_dl_config.c文件中,看到一下systick的初始化代码:

SYSCONFIG_WEAK void SYSCFG_DL_SYSTICK_init(void)
{/** Initializes the SysTick period to 1.00 ms,* enables the interrupt, and starts the SysTick Timer*/DL_SYSTICK_config(40000);
}

而里边的DL_SYSTICK_config()这个函数通过定位可以看到使用了CMSIS接口函数。

/***  @brief Redirects DL_SYSTICK_config to CMSIS standard SysTick_Config*/
#define DL_SYSTICK_config(x)                                   SysTick_Config(x)

这里将配置过程中,systick使能计数选项去掉。
在这里插入图片描述
重新生成配置文件,可以看到systick初始化初始化函数中使用了以下DL库函数

SYSCONFIG_WEAK void SYSCFG_DL_SYSTICK_init(void)
{/* Initialize the period to 1.00 ms */DL_SYSTICK_init(40000);DL_SYSTICK_enableInterrupt();NVIC_SetPriority(SysTick_IRQn, 2);
}

通过查询sdk文档或者看源码dl_systick.h,可以发现DL_SYSTICK_enable()函数是使能systick,并开始计数。

__STATIC_INLINE void 	DL_SYSTICK_init (uint32_t period)Initializes the System Tick Timer (SysTick) More...__STATIC_INLINE void 	DL_SYSTICK_setPeriod (uint32_t period)Set the period for the SysTick. More...__STATIC_INLINE void 	DL_SYSTICK_resetValue (void)Reset the current value of the SysTick. More...__STATIC_INLINE uint32_t 	DL_SYSTICK_getPeriod (void)Get the period for the SysTick. More...__STATIC_INLINE uint32_t 	DL_SYSTICK_getValue (void)Get the current value of SysTick counter. More...__STATIC_INLINE void 	DL_SYSTICK_enableInterrupt (void)Enable the SysTick interrupt.__STATIC_INLINE void 	DL_SYSTICK_disableInterrupt (void)Disable the SysTick interrupt.__STATIC_INLINE void 	DL_SYSTICK_enable (void)Enable the SysTick, starts counting once enabled. More...__STATIC_INLINE void 	DL_SYSTICK_disable (void)Disable the SysTick, stops counting once disabled.__STATIC_INLINE bool 	DL_SYSTICK_isEnabled (void)Checks if the SysTick is enabled. More...

3.2 中断服务函数实现

在startup_mspm0g350x_ticlang.c文件中可以看到systick的中断服务入口函数为:SysTick_Handler(),在main.c中实现该函数。

void SysTick_Handler(void)
{if( delay_times != 0 ){delay_times--;}
}

3.3 delay_ms()函数实现

void delay_ms(unsigned int ms)
{delay_times = ms;while( delay_times != 0 );
}

3.4 完整源码

systick初始化部分

SYSCONFIG_WEAK void SYSCFG_DL_SYSTICK_init(void)
{/** Initializes the SysTick period to 1.00 ms,* enables the interrupt, and starts the SysTick Timer*/DL_SYSTICK_config(40000);
}

main.c部分

#include "ti_msp_dl_config.h"volatile unsigned int delay_times = 0;//搭配滴答定时器实现的精确ms延时
void delay_ms(unsigned int ms)
{delay_times = ms;while( delay_times != 0 );
}int main(void) {/* Power on GPIO, initialize pins as digital outputs */SYSCFG_DL_init();/* Default: LED1 and LED3 ON, LED2 OFF */DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);while (1) {delay_ms(1000);// delay_cycles(DELAY);DL_GPIO_togglePins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);}
}//滴答定时器中断服务函数
void SysTick_Handler(void)
{if( delay_times != 0 ){delay_times--;}
}

4 systick相关函数自定义

使用sysconfig每一次编译都会重新初始化硬件配置,不方便程序移植。
另外systick硬件功能相对简单,涉及的寄存器和库函数也相对较少,这里可以将其相关初始化等函数做成自定义函数,做到拿来即用的效果,避免每次都需要进行sysconfig配置的过程。

4.1 在项目根目录添加2个文件 bsp_tick.c和bsp_tick.h

比如:项目路径为:C:\Users\adminFish\workspace_ccstheia\LED_toggle_output
即将以上.c和.h文件放入LED_toggle_output文件夹。这样的话,不用在项目属性中增加编译器include path(增加文件较少)。
并且,.c和.h文件可以自动添加到ccs项目中,并且在编译时可以自动添加到项目中。
编写如下代码:

bsp_tick.h

#ifndef bsp_tick_h
#define bsp_tick_h#include "ti_msp_dl_config.h"void systick_init(uint32_t period);
uint64_t systick_get_tick(void);
void systick_set_tick(uint64_t tick);
void systicks_clear_tick(void);
void delay_ms(uint64_t ms);#endif

bsp_tick.c

#include "bsp_tick.h"static volatile uint64_t mTick = 0;void systick_init(uint32_t period) {/* Initialize the period to 1.00 ms */DL_SYSTICK_init(period);DL_SYSTICK_enableInterrupt();NVIC_SetPriority(SysTick_IRQn, 1);DL_SYSTICK_enable();
}
static void systick_inc_tick(void) { mTick++; }
uint64_t systick_get_tick(void) { return mTick; }
void systick_set_tick(uint64_t tick) { mTick = tick; }
void systick_clear_tick(void) { mTick = 0; }
void delay_ms(uint64_t ms) {uint64_t tick = systick_get_tick();while (systick_get_tick() - tick < ms) ;
}
// 滴答定时器中断服务函数
void SysTick_Handler(void) { systick_inc_tick(); }

4.2 使用

回到第2步,使用高速时钟,并生成LED闪烁的程序。
main.c按照如下的方式做修改:

#include "bsp_tick.h"
#include "ti_msp_dl_config.h"int main(void) {/* Power on GPIO, initialize pins as digital outputs */SYSCFG_DL_init();systick_init(40000); //使用自定义初始化函数初始化并启动systick/* Default: LED1 and LED3 ON, LED2 OFF */DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);while (1) {delay_ms(100); // 延时100msDL_GPIO_togglePins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);}
}

这样,后面在使用的时候,只需要将.c和.h两个文件复制到项目文件夹下,就可以直接拿来用了(注意MCLK时钟频率)。

5 技术参考手册

2000页的手册,systick仅仅不到一页… 在这里插入图片描述

中文
英文

http://www.dtcms.com/a/400419.html

相关文章:

  • 河南工会考试真题分享
  • 有需要做网站的吗网站建设设置分享功能
  • 社交网站开发项目计划报告最好最值得做的调查网站
  • 处理视频抽帧并转换成json
  • 东大桥做网站的公司中国建设银行 网站登录
  • 成都科技网站建设联免费书画网站怎么做的
  • [SQL] 给定起止日期,计算出日期行
  • 育苗盘补苗路径规划研究_2.5
  • 建设网站的网站叫什么男网站案例展示分类
  • 什么是网络营销广东宣布即时优化调整
  • 杭州国外网站推广公司企业微信app下载安装不了
  • java-Collection集合-Set集合
  • 明亮的夜晚
  • 内江建网站广州公司注册需要哪些资料
  • 仙居网站建设网络搭建是什么工作
  • 设计网站公司咨询亿企邦影视文化网站建设
  • 苏州网站推广搭建小程序要钱吗
  • 石家庄网站开发与优化html网页制作房地产页面
  • 网站怎么做二维码链接地址建筑网站建设需要注意哪些
  • 如何把怎己做的网页放到网站上开放平台模式
  • 建设项目网站wordpress还有价值么
  • 网站开发 php python公司建立网站的好处
  • 新手制作网站工具删除wordpress.org
  • 网站备案 公司wordpress注册开启邮件验证
  • 5分钟快速校准!Franka Research 3机械臂解锁科研新速度
  • 【java实现用户编辑上传图片功能】
  • 工业设计灵感网站黄石建设工程信息网
  • 职教集团网站建设方案网页编辑pdf
  • 做创意ppt网站湖南百度推广开户
  • 深圳网站建站建设公司地址美化wordpress后台